gpt4 book ai didi

nest - Elasticsearch ,巢。功能排序

转载 作者:行者123 更新时间:2023-12-03 01:03:48 29 4
gpt4 key购买 nike

我正在构建一个过滤器页面,其中包含方面等,它应该可以正常工作。
现在我们的客户有一个请求,基本上是“能够决定哪些分类项目出来”。
每个产品都装饰有产品展示订单,并位于产品线中。

我们得到了这些示例产品展示订单:
1. 特色项目
2.核心项目
3. 备件
4.实用程序

这些产品线:
1. 锤子
2. 锯
3.木材

排序是这样的:
排序应该首先基于产品展示订单,其次是产品线,第三是字母顺序。
所以所有属于 的产品特色项目 首先列出,然后所有这些特色项目按它们的 排序产品线 ,如果某些产品在同一个特色项目和产品线中,则按字母顺序排列。

挑战是:我不能只将产品展示订单项目和产品线排序为产品上的数字,我只有一个名称/ID。

我们已经根据产品是否属于不同的类别来考虑 Boosting,但这似乎有点困惑。

或者

看看是否有可能在排序中有一些逻辑。
按 productDisplayOrder 排序:
1.特色,2.核心项目......
然后按 ProductLines:
1. 锤子,2. 锯...
然后按名称 DESC。

哪种方式是进行这种排序的最佳方式,是否可以将此逻辑赋予弹性,如果它是匹配的,然后对其进行排序。还是我们需要扭曲产品的提升?

希望这对你有意义。
提前致谢! :)

最佳答案

选项1)。最快/最佳性能的解决方案是为 productDisplayOrder 创建新的/单独的整数字段。和 ProductLine然后按照描述在您的排序标准中使用它们(在重新索引和验证数据按预期索引之​​后)。

选项 2) 如果您想要比描述更多的细微差别(例如,更高分的匹配可以“突破”描述的排序上限),那么您可以使用 Function Score Query 进行探索实现采用 productDisplayOrder 的自定义评分策略和 ProductLine在生成总体匹配分数时考虑。

选项 3)。如果您无法更改映射和重新索引数据,您可以使用 Script-Based Sorting使用脚本(例如 Groovy)从当前索引的 productDisplayOrder/ProductLine 文本生成排序值。请记住,查询性能将比前两个选项差。

关于nest - Elasticsearch ,巢。功能排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33669658/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com