我在中有一个文档
"_type": "_doc",
"_id": "109487",
"_score": null,
"_source": {
"id": "109487",
"title": "Interstellar",
"year": 2014,
"genre": [
"Sci-Fi",
"IMAX"
]
},
"sort": [
"Interstellar"
]
}
我正在使用类似的模糊查询进行搜索
{
"query": {
"fuzzy": {
"title": {"value": "intersteller", "fuzziness": 1}
}
}
}
但奇怪的是,如果我在intersteller
中用小i搜索,那么我会得到标题为Interstellar
的所需记录,但如果我用大写I
搜索,即如果我的查询是
"query": {
"fuzzy": {
"title": {"value": "Intersteller", "fuzziness": 1}
}
}
}
那么我不会从数据库获取和文档。。只是想了解幕后发生了什么
模糊查询不分析文本。多数情况下,模糊查询的作用类似于术语查询本身
在您的情况下,"title"
字段必须使用标准分析器。因此CCD_ 5被索引为CCD_。现在,当你在"intersteller"
上执行模糊查询时,你会得到结果,但"Intersteller"
不会
要了解更多关于模糊查询的信息,请参阅这个弹性搜索博客
最好使用匹配查询和模糊性参数
{
"query": {
"match": {
"title": {
"query": "Intersteller",
"fuzziness": "auto"
}
}
}
}
如果你想使用模糊查询,那么你需要增加模糊性参数,以使你的文档匹配
{
"query": {
"fuzzy": {
"title": {
"value": "Intersteller",
"fuzziness": 3
}
}
}
}