如何将模糊搜索与同义词一起使用?

时间:2016-12-01 13:20:16

标签: elasticsearch fuzzy

在我将同义词文件添加到索引后,模糊性停止了工作。看来,它们不可能同时使用它们。     我的问题:

 "query": {
        "dis_max": {
            "queries": [{ 
                 "multi_match": {
                 "query": $('#searchterm').val(),
                 "fields": ["search_1"],
                 "fuzziness": "AUTO", 
                 "operator":  "and",
                 "max_expansions": 1
             }},
                { "match": { "search_2": $('#searchterm').val() }}
            ]
        }
    }

映射:

"mappings": {
"objs":{
  "properties": {
    "o":{
      "type": "string"
    },
    "loc":{
      "type":"geo_point"
    },
    "search_1":{
      "type": "string",
      "analyzer": "synonym"
    },
    "search_2":{
      "type": "string",
      "analyzer": "synonym"
    }
  }
}

1 个答案:

答案 0 :(得分:0)

我只是遇到了同样的问题,而且似乎无法混合使用,有人为此打开了一个github问题:https://github.com/elastic/elasticsearch/issues/25518该问题已关闭,他们更新了文档: https://github.com/elastic/elasticsearch/blob/master/docs/reference/query-dsl/match-query.asciidoc

这是有趣的部分:

  

请注意,模糊匹配不适用于具有同义词的术语,例如   这些术语在引擎盖下扩展为特殊的同义词查询   混合了词频,不支持模糊扩展。