【问题标题】:Elastic Search - give preference to perfect match弹性搜索 - 优先考虑完美匹配
【发布时间】:2016-11-25 21:48:32
【问题描述】:

我是弹性新手。

我正在使用弹性搜索来搜索存储在我的数据库中的文档的标题字段。更多信息:"title" field - type "String"/indexed and "title.unanalyzed" field - type "String"/unindexed

我希望标题与查询完全匹配的文档出现在搜索结果的顶部,而对于所有其他文档,我希望它们按分数降序排序。我想给标题完全匹配的文档打 1.1 分会有所帮助,因为分析字段的弹性分数在 0 到 1 之间。我当前的查询:

query: {
                    term: {
                            "title.unanalyzed": "some_title"
                    },

                    multi_match: {
                            query: "some_title",
                            type: "most_fields",
                            fields: ["title", "other"]
                    }
        }

给出错误:failed to parse search source. expected field name but got [START_OBJECT]。需要帮助,谢谢!

【问题讨论】:

    标签: search elasticsearch


    【解决方案1】:

    试试这个:

    {
      "query": {
        "bool": {
          "should": [
            {
              "term": {
                "title.unanalyzed": "some_title"
              }
            },
            {
              "multi_match": {
                "query": "some_title",
                "type": "most_fields",
                "fields": [
                  "title",
                  "other"
                ]
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-07-09
      • 2022-06-18
      • 2016-06-18
      • 2021-02-12
      • 2014-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      相关资源
      最近更新 更多