gpt4 book ai didi

sorting - Elasticsearch 中的耦合

转载 作者:行者123 更新时间:2023-12-03 02:36:09 25 4
gpt4 key购买 nike

我们正在考虑对Elastic Search中存储的项目进行耦合。在建立索引时,我们在项目doc中为项目的耦合信息建立索引。有没有一种方法可以查询 Elasticsearch ,以便将耦合的项目合并到结果中?

例如:

item1 = {
...
coupled_item: item2
...
}

item2 = {
...
coupled_item: item1
...
}

query_result = [item3, item6, item1, item2, item4, item5]

方法1

我们认为的一种方法是在项目doc中添加 score键,并将耦合产品的得分设置为相等,然后在查询时按该得分对其进行排序。

缺点

我们已经在使用这种技术进行排序,我们不想阻止该顺序,我们只想将已耦合项目从其位置插入到项目下方。

方法2

我们认为的另一种方法是从ES查询所有项目,然后通过代码对其进行处理。

缺点

缺点是这不是最佳解决方案,在这种情况下,我们还需要自己处理分页。

Elastic Search提供了一项功能来内部处理耦合吗?如果没有,那么我们还有其他方法可以解决这个问题。

最佳答案

耦合的(相关的)文档可以在彼此内部重复。

    item1 = {
id: item1
coupled_item: {
id: item2
}
...
}

item2 = {
id: item2
coupled_item: {
id: item1
}
...
}

es_query_result = [item1 {item2}, item3 {item4}, item5 {item6}]

application_flattened_result = [item1, item2, item3, item4, item5, item6]

这将给文档写入带来一些挑战,因为现在两个文档将通过两个请求进行更新,但是可以完成。此外,搜索查询的分页也会变得棘手。

我知道,只有内部支持的功能足够接近- https://www.elastic.co/guide/en/elasticsearch/reference/current/nested.html

关于sorting - Elasticsearch 中的耦合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58852363/

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