【问题标题】:Exact Match Elasticsearch with Standard Tokenizer使用标准分词器精确匹配 Elasticsearch
【发布时间】:2020-02-21 14:50:13
【问题描述】:

我有一个带有标准标记器的字段,插入的文档如下:

1

{
  name : Hello World
}

2

{
  name : Hello World Welcome
}

3

{
  name : Hello World Welcome to the World
}

如何查询“Hello World”并返回所有带有“Hello World”一词的文档,并且第一个与“Hello World”完全匹配的文档将比其他文档得分更高

【问题讨论】:

    标签: elasticsearch elasticsearch-query


    【解决方案1】:

    您可以像这样非常简单地实现它:

    POST test/_search
    {
      "query": {
        "bool": {
          "must": [
            {
              "match": {
                "name": "Hello World"
              }
            }
          ],
          "should": [
            {
              "match_phrase": {
                "name": "Hello World"
              }
            }
          ]
        }
      }
    }
    

    第一个 match 约束将匹配所有三个文档,should/match_phrase 约束将提升第一个文档,即它会获得比其他两个文档略高的分数。

    【讨论】:

      猜你喜欢
      • 2023-03-30
      • 1970-01-01
      • 2020-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多