ElasticSearch 类似集合(唯一值列表)的功能?

oko*_*oko 5 set elasticsearch

ElasticSearch 是否支持其数组数据类型的类似集合的功能?

我希望能够向数组写入多种类型并强制数组值的唯一性。

换句话说,我正在寻找类似 Redis 的SADD或 MongoDB 的addToSet 的东西,但适用于 ElasticSearch。

mic*_*mia 2

您可以通过脚本化更新来完成此任务。

curl -XPOST 'localhost:9200/test/type1/1/_update' -d '{
    "script" : "ctx._source.tags.contains(tag) ? (ctx.op = \"none\") : ctx._source.tags += tag"
    "params" : {
        "tag" : "blue"
    }
}'
Run Code Online (Sandbox Code Playgroud)

请注意,出于安全原因,Elasticsearch 中的脚本存在许多限制;您可能想检查文档中的脚本模块页面。