elasticsearch more_like_this查询需要很长时间才能运行

时间:2016-01-18 10:49:35

标签: elasticsearch query-optimization morelikethis

我对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
                                }
                            }
                         ]
                    }
               }
           }

1 个答案:

答案 0 :(得分:0)

我相信您现在可能已经解决了这个问题,但根据索引文档的内容和应用于您正在查看的字段的分析器,这可能需要很长时间才能完成。想想相似性如何工作以及如何计算文档,你可能会找到答案。此外,您可以使用explain param来获取Lucene对问题的详细逐步响应 ,但以防我想补充:如果没有更多细节,几乎不可能确定任何事情:

  • 你的映射是什么样的
  • 如何分析这些字段
  • 您使用的是什么版本的ES
  • 您的ES设置

另外,用英语描述你想要检索的内容:“我希望目录索引中的文档具有类似于art_title的标题和/或类似于art_tag的标记”。

如果您使用的是最新版本的ES

,则可以参考HERE中的语法

干杯