如何提高基于另一个领域的Elasticsearch结果?

Kinda用例简单,但无法提出好的解决方案。

基本上,我有两个索引字段:内容和关键字(关键字标记生成器),其中内容是一个长文本字段,关键字包含该内容中的重要术语。当我查询一些长文本时,我必须根据匹配文档中存在的关键字来增强这些结果。

我尝试在内容和关键字字段上查询完整的文本,但是它太慢了,或者对于40个单词以上的文本会引发too_many_clauses错误。

{"query": {
    "match": {
      "keywords": {
        "query": "some long text","analyzer": "custom_analyzer"
      }
    }
  }}

还有什么更好的方法吗?渗滤器会​​在这里工作吗?

czq40034234 回答:如何提高基于另一个领域的Elasticsearch结果?

我可以将其与我的应用程序相关,类似于Stackoverflow,它由问题和答案组成,对于一个问题,有主题,正文,标签等。

此处的主题与您的关键字索引字段有关,主体与您的内容索引字段有关。通常subject包含有关帖子的重要关键字,您也是如此。

现在进入解决方案部分, 我们如何通过查询主题和正文索引字段来解决问题,但是将主题提升15倍,这是可配置的。

我们使用的ES查询:

{
  "query": {
    "multi_match" : {
      "query" : "this is a test","fields" : [ "subject^15","message" ] 
    }
  }
}

This ES文档也有一个类似的示例,其中他们将multi_match查询中的主题字段提升了3倍。

如果您有任何疑问,请告诉我。

本文链接:https://www.f2er.com/3117591.html

大家都在问