elasticsearch - 如何停止重复数据

标签 elasticsearch

我正在 elasticsearch 中更新我的文档并添加新用户,所以作为一个例子,假设我正在向我的字段名称“update_field”添加两个新用户。所以现在如果我现在在我的字段名称“update_field”中添加这两个值,那么如果我尝试再次插入它,它不会再次插入数据,或者我的意思是它不会复制数据。我该怎么做,有人可以知道我如何编写一种方法来停止 elasticsearch 的重复数据,我正在使用 PHP

最佳答案

是的,只需将您的脚本更改为:

"script": "ctx._source.update_field = (ctx._source.update_field + new_value).unique();"

我们基本上是在 groovy 中连接两个列表,然后使用 unique() 我们可以删除所有重复项。另一种方法是将列表转换为 Set,这会产生相同的效果。

关于elasticsearch - 如何停止重复数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31723713/

相关文章:

elasticsearch - 在Logstash中获取日期格式的时间戳记,日期和时间字段

node.js - 如何绕过 Elasticsearch 5.0 中的负载

elasticsearch - 查找Elasticsearch已匹配的字段

reactjs - 在 React 中使用 searchKitManager 时出错

elasticsearch - 如何在Elasticsearch的设置中声明一个以上的分词器

scala - 简单esRDD(Spark中使用的Elasticsearch-hadoop连接器)引发了异常

java - Jest Elasticsearch 具有多个匹配字符串的查询构建器查询

symfony - Symfony2/弹性束

将字符串字段映射为文本和关键字时的 ElasticSearch 性能注意事项?

c# - 通过WebRequest C#将JSON字符串发布到ElasticSearch