我对elasticsearch有以下more_like_this查询。 我使用不同的art_title和art_tags每次循环运行15次。对于某些文章来说,花费的时间非常少,但对于循环中的一些文章,执行时间太长。我可以做些什么来优化这个查询。任何帮助表示赞赏。
bodyquery={
"query":
{"bool":
{"should":
[
{"more_like_this":
{
"like_text": art_title,
"fields": ["title"],
"max_query_terms": 30,
"boost": 5,
"min_term_freq": 1
}
},
{"more_like_this":
{
"like_text": art_tags,
"fields": ["tags"],
"max_query_terms": 30,
"boost": 5,
"min_term_freq": 1
}
}
]
}
}
}
答案 0 :(得分:0)
我相信您现在可能已经解决了这个问题,但根据索引文档的内容和应用于您正在查看的字段的分析器,这可能需要很长时间才能完成。想想相似性如何工作以及如何计算文档,你可能会找到答案。此外,您可以使用explain param来获取Lucene对问题的详细逐步响应 ,但以防我想补充:如果没有更多细节,几乎不可能确定任何事情:
另外,用英语描述你想要检索的内容:“我希望目录索引中的文档具有类似于art_title的标题和/或类似于art_tag的标记”。
如果您使用的是最新版本的ES
,则可以参考HERE中的语法干杯