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

Elasticsearch - how to fuzzy match phrase when search keyword has no spaces?

我想通过搜索关键字 brownfox.

来匹配字段 title 值为 brown fox 的文档

尝试此 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"
        }
      }
    }
}'

此 returns 结果具有相似的关键字,但不是标题为 brown fox 的文档,我认为它更匹配。

我也阅读了 SO 问题的答案,但我没有选择用同义词更新字段的分析器,因为我也想匹配其他类似的情况,包括两个都丢失空格和 mis-spelled 个单词。

谢谢!

title 字段的映射至少应该有一个分析器将 "brown fox" 保持为单个术语。如果它使用 standard 分析器或任何不保持 brown fox 作为一个整体的东西,你将无法匹配它。