elasticsearch,Autocomplete,elasticsearch" /> elasticsearch,Autocomplete,elasticsearch" />

Autocomplete 弹性搜索完成建议器配置

Autocomplete 弹性搜索完成建议器配置,autocomplete,elasticsearch,Autocomplete,elasticsearch,我正在尝试使用弹性搜索的功能,在我网站的搜索表单上设置自动完成/建议 我有一个产品列表,按类别(多个级别)分组。搜索功能应该能够建议用户比直接产品更感兴趣的类别名称。 其中几个类别的名称相同,但父类别不同(例如,父类别“乳制品”下的“牛奶”和类别“婴儿”下的“牛奶”)。当用户选择一个类别建议时,她将被重定向到另一个页面,结果比单纯的搜索方法更具体 在有效负载字段中添加了其他元数据(要重定向到的url、父类别id/名称) 我使用output字段返回不同输入的规范化建议。如文件所述: “如果多个文档

我正在尝试使用弹性搜索的功能,在我网站的搜索表单上设置自动完成/建议

我有一个产品列表,按类别(多个级别)分组。搜索功能应该能够建议用户比直接产品更感兴趣的类别名称。
其中几个类别的名称相同,但父类别不同(例如,父类别“乳制品”下的“牛奶”和类别“婴儿”下的“牛奶”)。当用户选择一个类别建议时,她将被重定向到另一个页面,结果比单纯的搜索方法更具体

有效负载
字段中添加了其他元数据(要重定向到的url、父类别id/名称)

我使用
output
字段返回不同输入的规范化建议。如文件所述:

“如果多个文档具有相同的输出,则结果将消除重复, i、 e.仅返回一个作为建议结果的一部分。”

但正如所解释的,我的输出可能具有相同的值,但结果不同,因为它们将链接到不同的页面。未来,不同的类别级别也可能产生不同的行动

我不愿意通过添加完整字符串(即“乳制品中的牛奶”)作为输出来区分事物,因为:

1。父类别在概念上不是输出本身,而是相关的元数据。
2。我打算在结果中设置一些格式,这迫使我解析输出字符串,在其中添加HTML标记

那么,是否可以停用重复数据消除


如果不可能的话,我想到的一个解决方法是在输出中存储一个字符串化的json对象,以及所有需要的数据,包括搜索表单中显示的数据和有效负载中当前的元数据。但是,在使用之前,我宁愿先查看现有配置。

如果您有多个具有相同输出的不同文档,用户如何知道选择哪一个?这就是有效负载数据发挥作用的地方。一部分附加到输出,另一部分定义选择建议时的行为。为什么不使用附加到输出字符串的有效负载数据为数据编制索引?而不是以后附加它?我认为有效载荷是某种外部元数据,因此概念上应该在输出字符串本身之外。但如果这是我唯一的选择,我想我还是会把它包括进去。不确定这是不是唯一的方法,但肯定是最简单的方法。既然您想将数据附加到输出中,为什么不在索引时首先附加数据,然后再进行排序呢?