我正在尝试运行“模糊”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
}
}
}
}
}
答案 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不是有效值。