使用Elasticsearch查找数组中最常见的重合值

时间:2017-06-13 22:31:33

标签: elasticsearch

我想为一组订单显示最常订购的产品对。我的搜索索引的缩写版本看起来像这样:

{
    "_type" : "order",
    "_id" : "10",
    "_score" : 1.0,
    "_source" : {
        ...
        "product_ids" : [
            1, 2
        ]
        ...
    }
},
{
    "_type" : "order",
    "_id" : "11",
    "_score" : 1.0,
    "_source" : {
        ...
        "product_ids" : [
            1, 2, 3
        ]
        ...
    }
}

鉴于我的搜索索引包含一组订单,每个订单都包含一个product_ids字段,其中包含订单中的产品ID数组,是否可以将Elasticsearch聚合放在一起,该聚合将返回:

  1. 最常见的产品ID对(可能是任意长的产品ID列表的成员),这些产品ID在订单中最常出现。
  2. 最常见的任意长度的产品ID组,最常出现在订单中。
  3. 我一直在阅读文档,而且我不确定邻接矩阵是否适合此问题。我目前的预感是编写一个脚本基数查询,在查询文档中对product_ids进行排序和加入,以获得与#2一致的结果,因为#1似乎可能涉及过多的产品ID排列是合理的高效。

0 个答案:

没有答案