【问题标题】:Elasticsearch query to select all documents where one field's value is contained multi-valued fieldElasticsearch 查询以选择包含一个字段值的所有文档 多值字段
【发布时间】:2014-03-04 01:03:42
【问题描述】:

有没有办法在多值字段中查询包含一个属性值的所有文档的弹性搜索;即:

我在字段 COLORS 中有一个属性值列表:红色、蓝色、黑色、绿色 另一个属性在字段 PREFERENCE 中有一个值:红色

有没有办法选择包含在多值字段 COLORS 中字段 PREFERENCE 中找到的值的所有文档?

SQL 等价物就是这样的:

SELECT * FROM index WHERE COLORS LIKE CONCAT('%', PREFERENCE, '%')

【问题讨论】:

    标签: json elasticsearch multivalue


    【解决方案1】:

    您可以使用脚本过滤器。像这样的

    GET /test/stack/_search
    {
        "query": {
            "match_all": {}
        },
        "filter": {
            "script":{ 
               "script":"if(doc['colors'].values.indexOf(doc['preference'].value) > -1) true; else false;" ,
               "params": {}
    
            },"lang":"js"
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 2013-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多