query_string会忽略模糊性

时间:2016-04-12 07:25:15

标签: elasticsearch

我正在尝试运行“模糊”query_string搜索,任何想法可能出错?模糊参数本身对query_string有效,不会抛出异常。

找到一个结果:

{
  "query": {
    "bool": {
      "should": {
        "query_string": {
          "default_field": "title",
          "query": "index"
        }
      }
    }
  }
}

找不到任何东西:

{
  "query": {
    "bool": {
      "should": {
        "query_string": {
          "default_field": "title",
          "query": "indexa",
          "fuzziness": 9000
        }
      }
    }
  }
}

1 个答案:

答案 0 :(得分:1)

对于查询字符串,您必须明确使用"fuzzy operator" ~

尝试:

    "query_string": {
      "default_field": "title",
      "query": "indexa~",
      "fuzziness": "AUTO"
    }

或者,如果您知道要搜索的字段并且不需要查询字符串功能(例如,允许用户使用AND或{}之类的运算符,则可以使用fuzzy match query {1}}或引入自定义提升等。)

OR

另请注意,在这两种情况下, "match": { "title": { "query": "indexa", "fuzziness": "AUTO" } } only accepts the values 1, 2 or AUTO,因此9000不是有效值。