我尝试使用模糊参数来改进搜索结果,但是,我有一个特定于语言的问题:
在西班牙语中,许多女性名字和单词只添加了一个" a"在这个单词的男性版本的最后,当我搜索像#34; Daniela"将模糊设置为自动或1,我得到返回" Daniel"因此,我必须输入" Danielaa"搜索匹配" Daniela"
有关此问题的任何帮助吗?
答案 0 :(得分:0)
听起来你想做的是比模糊匹配更喜欢完全匹配。作为普通查询的模糊查询aren't scored,您需要自己处理。
我过去通过使用带有两个Should
子句的bool查询来解决这个问题 - 一个用于增强,非模糊查询,另一个用于模糊查询。
这些方面的东西(未经测试,可能需要一些调整,但应该说明这个想法):
{
"bool" : {
"should" : {
"match" : { "name" : {
"query" : "kimchy",
"boost" : 2
}}
},
"should" : {
"match" : { "name" : {
"query" : "kimchy",
"fuzziness" : "auto"
}}
}
}
}