繁体   English   中英

Elasticsearch查询以选择包含一个字段的值的所有文档多值字段

[英]Elasticsearch query to select all documents where one field's value is contained multi-valued field

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

我在颜色字段中有属性值的列表:红色,蓝色,黑色,绿色另一个属性在字段中具有单个值PREFERENCE:红色

有没有办法选择所有包含多值字段“颜色”中“字段”中包含值的文档?

SQL等效将是这种情况:

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

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

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"
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM