我试图使用模糊搜索来查找艺术家名称,例如' p!nk'查询'粉红色'。我使用标准分析器索引艺术家名称字段并执行模糊搜索,如下例所示。但它会返回奇怪的结果。见下文...
{
"query": {
"bool": {
"should": [
{
"match": {
"artists": "pink"
}
},
{
"match": {
"artists": {
"query": "pink",
"fuzziness": "1"
}
}
}
]
}
}
}
我同时做了一个'应该'查询和模糊的'查询所以我可以涵盖所有基础,他们得到适当的得分。 (不确定这是否正确)。
但我得到的结果非常奇怪。艺术家' p!nk'肯定是在我的索引中,因为我可以使用常规查询来检索它的正确拼写' p!nk',但是'粉红色'找不到它。
这是我的结果:
hits": {
"total": 4,
"max_score": 4.479847,
"hits": [
{
"_index": "myindex",
"_type": "mytype",
"_id": "723721728656",
"_score": 4.479847,
"fields": {
"artists": [
"Pink Martini"
]
}
},
{
"_index": "myindex",
"_type": "mytype",
"_id": "888837349727",
"_score": 0.9021777,
"fields": {
"artists": [
"Kid Ink"
]
}
},
{
"_index": "myindex",
"_type": "mytype",
"_id": "888837168625",
"_score": 0.7237221,
"fields": {
"artists": [
"Daft Punk"
]
}
},
{
"_index": "myindex",
"_type": "mytype",
"_id": "888837168618",
"_score": 0.7237221,
"fields": {
"artists": [
"Daft Punk"
]
}
}
]
}