elasticsearch 弹性搜索边缘\u内存匹配查询\u全部被忽略,elasticsearch,autocomplete,elasticsearch,Autocomplete" /> elasticsearch 弹性搜索边缘\u内存匹配查询\u全部被忽略,elasticsearch,autocomplete,elasticsearch,Autocomplete" />

elasticsearch 弹性搜索边缘\u内存匹配查询\u全部被忽略

elasticsearch 弹性搜索边缘\u内存匹配查询\u全部被忽略,elasticsearch,autocomplete,elasticsearch,Autocomplete,我正在使用弹性搜索number:“1.5.2”,我正在尝试实现一个边缘自动完成搜索。我有以下映射: curl-XPUT'localhost:8080/users'-d'{ “设置”:{ “分析”:{ “过滤器”:{ “边缘随机滤波器”:{ “类型”:“边缘图”, “最小克”:2, “最大克数”:10 } }, “分析器”:{ “边缘随机分析仪”:{ “类型”:“自定义”, “标记器”:“标准”, “过滤器”:[ “小写”, “asciifolding”, “边缘随机滤波器” ] }, “空白_

我正在使用弹性搜索
number:“1.5.2”
,我正在尝试实现一个边缘自动完成搜索。我有以下映射:

curl-XPUT'localhost:8080/users'-d'{
“设置”:{
“分析”:{
“过滤器”:{
“边缘随机滤波器”:{
“类型”:“边缘图”,
“最小克”:2,
“最大克数”:10
}
},
“分析器”:{
“边缘随机分析仪”:{
“类型”:“自定义”,
“标记器”:“标准”,
“过滤器”:[
“小写”,
“asciifolding”,
“边缘随机滤波器”
]
},
“空白_分析器”:{
“类型”:“自定义”,
“标记器”:“空白”,
“过滤器”:[
“小写”,
“asciifolding”
]
}
}
},
“映射”:{
“用户”:{
“_all”:{
“类型”:“字符串”,
“索引分析器”:“边缘内存分析器”,
“搜索\u分析器”:“空白\u分析器”
},
“财产”:{
“id”:{
“类型”:“整数”,
“索引”:“否”,
“包含在所有内容中”:false
},
“电子邮件”:{
“类型”:“字符串”
},
“名字”:{
“类型”:“字符串”
},
“姓氏”:{
“类型”:“字符串”
}
}
}
}
}

}“
您可以通过edge ngram实现自动完成功能,而无需覆盖
\u all
字段分析。这是通过将您定义的分析器的名称更改为
default\u index
default\u search
(如果需要,您可以使用它们来反映您的原始名称(“edge\u ngram\u analyzer”和“whitespace\u analyzer”)。以下是您的配置和相关更改:

curl-XPUT'localhost:8080/users'-d'{
“设置”:{
“分析”:{
“过滤器”:{
“边缘随机滤波器”:{
“类型”:“边缘图”,
“最小克”:2,
“最大克数”:10
}
},
“分析器”:{
“默认索引”:{
“类型”:“自定义”,
“标记器”:“标准”,
“过滤器”:[
“小写”,
“asciifolding”,
“边缘随机滤波器”
]
},
“默认搜索”:{
“类型”:“自定义”,
“标记器”:“空白”,
“过滤器”:[
“小写”,
“asciifolding”
]
}
}
},
“映射”:{
“用户”:{
“财产”:{
“id”:{
“类型”:“整数”,
“索引”:“否”,
“包含在所有内容中”:false
},
“电子邮件”:{
“类型”:“字符串”
},
“名字”:{
“类型”:“字符串”
},
“姓氏”:{
“类型”:“字符串”
}
}
}
}
}

}“
这项工作做得很好。简单而优雅的解决方案。非常感谢。