首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >elasticsearch提升精确短语匹配的重要性

elasticsearch提升精确短语匹配的重要性
EN

Stack Overflow用户
提问于 2013-08-28 15:19:12
回答 5查看 20.3K关注 0票数 21

在elasticsearch中有没有一种方法来提升文档中出现的确切短语的重要性?

例如,如果我搜索短语"web developer“,如果"web developer”这两个词出现在一起,与文档中单独出现的"web“和"developer”相比,它们会增加5。因此,任何包含"web developer“的文档都将首先出现在结果中。

EN

回答 5

Stack Overflow用户

发布于 2013-08-28 19:24:18

您可以使用bool query将不同的查询组合在一起,也可以对它们进行不同的提升。假设您对这两个术语都有一个常规的match query,而不管它们的位置如何,然后是一个具有更高boost的短语查询。

类似于以下内容:

代码语言:javascript
复制
{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "field": "web developer"
          }
        },
        {
          "match_phrase": {
            "field": "web developer",
            "boost": 5
          }
        }
      ],
      "minimum_number_should_match": 1
    }
  }
}
票数 29
EN

Stack Overflow用户

发布于 2015-02-07 02:29:22

您可以尝试使用rescore在初始结果上运行精确的短语匹配。从文档中:

重新搜索有助于提高精度,方法是使用辅助(通常成本较高)算法对查询和post_filter阶段返回的前几个(例如100 - 500)文档进行重新排序,而不是将成本较高的算法应用于索引中的所有文档。

https://www.elastic.co/guide/en/elasticsearch/reference/current/filter-search-results.html#rescore

票数 3
EN

Stack Overflow用户

发布于 2014-05-29 00:01:19

我在我的案例中使用了下面的示例查询,它是有效的。它带来了精确的+模糊的结果,但是精确的结果被提升了!

代码语言:javascript
复制
{ "query": {
"bool": {
  "should": [
    {
      "match": {
        "name": "pala"
      }
    },
    {
      "fuzzy": {
        "name": "pala"
      }
    }
  ]
}}}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18481600

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档