Elasticsearch - 当搜索关键字没有空格时如何模糊匹配短语?

时间:2016-07-15 17:27:11

标签: elasticsearch django-haystack

我希望通过搜索关键字title来匹配其字段brown fox具有值brownfox的文档。

尝试此fuzzy查询时,我得不到任何结果:

curl -XGET 'http://localhost:9200/haystack/_search?pretty' -d '{
    "query" : {
        "fuzzy" : {
            "title": {
                "value": "brownfox",
                "fuzziness": 2,
                "prefix_length": 0,
                "max_expansions": 10000
            }
        }
    }
}'

我还尝试使用模糊性和运算符match进行and查询:

curl -XGET 'http://localhost:9200/haystack/_search?pretty' -d '{
    "query": {
      "match": {
        "title": {
          "query":     "brownfox",
          "fuzziness": "AUTO",
          "operator":  "and"
        }
      }
    }
}'

这会返回具有相似关键字的结果,但不会返回标题为brown fox的文档,我认为该文档更适合。

我也阅读了this问题的答案,但我没有选择用同义词更新字段的分析器,因为我也希望匹配其他类似的情况,包括缺少空格和拼写错误的单词。

谢谢!

1 个答案:

答案 0 :(得分:1)

title字段的映射至少应该有一个将"brown fox"保留为单个术语的分析器。如果它正在使用standard分析器或任何未保留brown fox整体的内容,那么您将无法与之匹配。