Javascript 如何为以下场景配置elasticserach 7.3自动完成
我需要elasticsearch 7.3文档中前缀自动完成建议的帮助,该文档具有多字段搜索和输出中的关联字段类型,以对建议的术语类型进行分类 尝试使用search_as_you_type字段类型并添加多个完成分析器,但迄今为止运气不佳。我想要一个非常容易实现的解决方案,消除重复并减少内存占用。类似于Redis排序集的东西。Javascript 如何为以下场景配置elasticserach 7.3自动完成,javascript,node.js,
elasticsearch,autocomplete,Javascript,Node.js,
elasticsearch,Autocomplete,我需要elasticsearch 7.3文档中前缀自动完成建议的帮助,该文档具有多字段搜索和输出中的关联字段类型,以对建议的术语类型进行分类 尝试使用search_as_you_type字段类型并添加多个完成分析器,但迄今为止运气不佳。我想要一个非常容易实现的解决方案,消除重复并减少内存占用。类似于Redis排序集的东西。 这是我的el索引文档和预期的自动完成结果 { "id": "7cBLdyLTkPNTC8c1Ntq", "tech": { "body":
这是我的el索引文档和预期的自动完成结果
{
"id": "7cBLdyLTkPNTC8c1Ntq",
"tech": {
"body": "Nikon D600",
"gear": "Nikon AF-S Nikkor 16-35mm f/4 ED VR"
},
"artist": {
"name": " Hilton Paris"
},
"details": {
"place": "Nepal",
"text": "Mount Everest .Natures mirror",
"tags": [
"mountain",
"rock",
"nature",
"wooden trail",
"mirror",
"past and furious"
],
"score": 0.87
},
"createdDate": {
"_seconds": 1566260863,
"_nanoseconds": 12000000
}
}
{
"id": "8cBLdyLTkPNTC8c1Ntq",
"tech": {
"body": "Panasonic Lumix DC-S1R Mirrorless",
"gear": "Panasonic Lumix S PRO 50mm"
},
"artist" : {
"name": "Jhon Gabriel"
},
"details": {
"place": "paris",
"text": "mirror lake reflection",
"tags": [
"lake",
"rock",
"nature",
"water"
],
"score": 0.87
},
"createdDate": {
"_seconds": 1566260863,
"_nanoseconds": 12000000
},
}
搜索“pa”应给出以下输出
output [ {
"type" :"artist",
"value" : "Paris Peace",
},
{
"type" :"body",
"value" : "Panasonic",
},
{
"type" :"gear",
"value" : " Panasonic Lumix S PRO 50mm"
},
{
"type" :"place",
"value" : "paris"
},
{
"type" : "tag",
"value" : "past and furious"
}
]
我需要的是
对于给定的输入前缀,例如“pa”,使用以下条件从elsticsearch数据存储中获取所有匹配项输入满足以下字段之一的不区分大小写前缀
1.1“tech.body”-->令牌级别前缀匹配,仅输出令牌值
1.2“tech.gear”-->令牌级前缀匹配,输出该字段的完整字符串值。
例如,如果TECH.gear有一个前缀为“pa”的令牌,
输出应为该字段的完整值,如“Panasonic Lumix S PRO 50mm”
1.3“艺术家名称”-->令牌级前缀匹配
1.4“details.place”-->令牌级前缀匹配
1.5“details.tags”-->令牌级前缀匹配,输出字段的完整字符串值,例如pa-->“过去和愤怒”
1.6“details.text”-->令牌级前缀匹配
非常感谢您的帮助,因为这将成为即将发布的版本的拦路虎