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

标签 elasticsearch set

ElasticSearch 的 array data type 是否支持类似集合的功能? ?

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

换句话说,我正在寻找像 Redis 的 SADD 这样的东西或 MongoDB 的 addToSet但对于 ElasticSearch。

最佳答案

您可以使用 scripted updates 完成此操作.

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

请注意,出于安全原因,Elasticsearch 中的脚本有许多限制;你可能想检查 Scripting module page在文档中。

关于ElasticSearch 类似集合(唯一值列表)的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31014879/

相关文章:

java - Guava 的 ImmutableSet 成员方法是否模仿 java.util.HashSet#contains?

java - Java 中的设置方法

json - 如何过滤嵌套聚合

elasticsearch - elasticsearch node.ROLE配置

hadoop - Elasticsearch 在单个查询请求中更新多个字段

javascript - cakephp 在 Javascript 中具有类似 Set::combine 的功能

c++ - 了解从链表中删除重复项的复杂性

java - 如何从 java.util.Set 中获取第一项?

database - 用于聚合/报告数据的Elasticsearch与RDMB

elasticsearch - Elasticsearch 多个发布主机