弹性搜索:具有更高分数+保持分析的确切短语

时间:2016-08-16 23:57:45

标签: elasticsearch

我在索引的特定multi_match上使用简单的type查询。

根据以下屏幕截图,当搜索查询 Hyderabad,In 或甚至 Hyderabad,Ind 时,预期结果会显示较低的分数。在这种情况下,预期的结果是印度海得拉巴(INHYD)

Unintended suggestion

编辑:以下是我更新的查询:

{
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "_all": {
              "query": "Hyderabad, In",
              "fuzziness": 4,
              "prefix_length": 2,
              "operator": "and"
            }
          }
        }
      ]
    }
  }
}

以下是完整的ElasticSearch跟踪:

Elasticsearch TRACE: 2016-08-17T07:33:21Z
  -> POST http://192.168.99.100:9200/shipwaves/ports/_search?size=10&from=0&default_operator=AND
  {
    "query": {
      "bool": {
        "should": [
          {
            "match": {
              "_all": {
                "query": "Hyderabad, In",
                "fuzziness": 4,
                "prefix_length": 2,
                "operator": "and"
              }
            }
          }
        ]
      }
    }
  }
  <- 200
  {
    "took": 8,
    "timed_out": false,
    "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
    },
    "hits": {
      "total": 0,
      "max_score": null,
      "hits": []
    }
  }

如何调整查询以获得更高分的预期结果?

注意:我已经了解到使用not_analyzed索引会使这项工作成功,但我确实希望进行分析,以便像** Hydrabad这样的短语(缺少一个字母)匹配。所以我保持分析简单。

弹性搜索v2.3.5

0 个答案:

没有答案