elasticsearch搜索大文本有“太多条款”

时间:2016-03-08 01:45:26

标签: python elasticsearch

我有一组我正在尝试索引的新闻文章。有时我会得到同样的文章,只有一点微小的变化(例如“九月”与“九月”)。在将文章加载到数据库之前,我想在加载它之前看看是否有任何类似的东西。

所以我尝试了这个(使用python elasticsearch_dsl库)

search = elasticsearch_dsl.Search(index=INDEX, doc_type=DOC_TYPE)
search = search.filter(match, text=article_text)

这有点用,直到我得到一篇很长的文章。然后我收到一条错误消息“maxClauseCount设置为1024”。

好吧,也许我的文字太长了。所以我这样做:

text_bits = article_text.split()
if len(text_bits) > 1024:
   article_text = " ".join(text_bits[:1023])

并且适用于包含大量文本的第一个项目,但不适用于第二个项目。所以也许我的原始猜测是关闭的,或者我可能没有做到这一点。

(顺便说一句,我看到文档中列出了“更像这样”的查询,但是当我尝试通过Sense使用它时,就像这样:

post /myindex/article/_search
{
  "more_like_this" : {
    "fields" : ["text"],
    "like" : "mary had a little lamb"
  }
}

我得到“未知搜索元素'more_like_this'”

0 个答案:

没有答案