我的弹性搜索文档有一个字段Name
,其中包含以下条目:
Samsung Galaxy S3
Samsung Galaxy Ace Duos 3
Samsung Galaxy Duos 3
Samsung Galaxy S2
Samsung Galaxy S (I9000)
在使用以下查询查询此字段时(注意“s”和“3”之间的空格):
{
"query": {
"match": {
"Name": {
"query": "galaxy s 3",
"fuzziness": 2,
"prefix_length": 1
}
}
}
}
它"Samsung Galaxy Duos 3"
作为相关结果返回,而不是"Samsung Galaxy S3"
.
我注意到此类任务的模式是忽略任何数字和任何单个字母字符之间的空格,并进行查询。例如 then ,"I-phone 5s"
也应该由"I-phone 5 s"
.
有没有很好的方法来实现这一点?