【问题标题】:ElasticSearch, how to search for a document containing a specific array elementElasticSearch,如何搜索包含特定数组元素的文档
【发布时间】:2012-02-24 06:51:18
【问题描述】:

我在使用 elasticsearch 时遇到了一点问题,想知道是否有人可以帮我解决它。

我有一个包含一组元组(出版物)的文档。

类似:

    {
       ....

       publications: [
         {
           item1: 385294,
           item2: 11
         },
         {
           item1: 395078,
           item2: 1
         }
       ]

       ....
    }

我遇到的问题是检索包含特定元组的文档,例如(item1 = 395078 AND item2 = 1)。

无论我尝试什么,似乎总是将 item1 和 item2 分开处理,我没有告诉 elasticsearch item1 和 item2 在同一个元组中必须有一个特定的值,而不是跨越整个数组......

我这里有什么遗漏吗?

谢谢

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    这是不可能的。 ElasticSearch 在检查条件之前将数组展平。 也就是说 elasticSearch 匹配 a=x AND b=y1 to [{a=x,b=y},{a=x1,b=y1}] 这在传统数组检查中不会发生。

    你可以在这里做的是

    【讨论】:

    • 谢谢,明天我会看看嵌套类型。还有一个问题,如果存储这样的出版物:publications: [ { 385294:11 }, { 395078:1 } ] 它对我的查询有何帮助?
    • 如果前面有 item1 的值,可以在数组中查询 385294 的值。它会给出 11。
    猜你喜欢
    • 1970-01-01
    • 2023-03-17
    • 2017-03-01
    • 1970-01-01
    • 2020-03-19
    • 2016-11-22
    • 2014-10-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多