Elasticsearch中的模糊搜索提供了不正确的顺序匹配



我正在尝试构建一个引擎,我们可以在地址中提到的区域与Elasticsearch中的可用列表进行匹配。

我正在使用此查询来搜索类似于" IIT"的区域。

我的查询是:

{
   "query": {
      "fuzzy": {
         "locality": {
            "value": "iit",
            "fuzziness": 1
         }
      }
   },
   "highlight": {
      "fields": {
         "locality": {}
      }
   }
}

我要低于结果:

{
   "took": 4,
   "timed_out": false,
   "_shards": {
      "total": 5,
      "successful": 5,
      "failed": 0
   },
   "hits": {
      "total": 2,
      "max_score": 2.1290483,
      "hits": [
         {
            "_index": "geocoding_1",
            "_type": "localities",
            "_id": "AVuzRiZ04pEQsZFpK6A_",
            "_score": 2.1290483,
            "_source": {
               "locality": [
                  "emerald isle ii"
               ]
            },
            "highlight": {
               "locality": [
                  "emerald isle <em>ii</em>"
               ]
            }
         },
         {
            "_index": "geocoding_1",
            "_type": "localities",
            "_id": "AVuzRfof4pEQsZFpK59H",
            "_score": 1.877402,
            "_source": {
               "locality": [
                  "iit - bombay",
                  "iitb",
                  "indian institute of technology - bombay"
               ]
            },
            "highlight": {
               "locality": [
                  "<em>iit</em> - bombay",
                  "<em>iitb</em>"
               ]
            }
         }
      ]
   }
}

因为" IIT"在第二个文档中直接可用,因此我期望将其作为最佳匹配而获得最高分数。我应该做的变化是什么,以便我获得最高分数的第二个文档。

我正在使用ES 2.3.4。

如果您也有兴趣确切的匹配以更好地得分,我总是建议使用should语句的bool并在其中添加matchterm查询。这样,组合分数将有利于确切的匹配:

{
  "query": {
    "bool": {
      "should": [
        {
          "fuzzy": {
            "locality": {
              "value": "iit",
              "fuzziness": 1
            }
          }
        },
        {
          "match": {
            "locality": "iit"
          }
        }
      ]
    }
  },
  "highlight": {
    "fields": {
      "locality": {}
    }
  }
}

相关内容

  • 没有找到相关文章

最新更新