Elasticsearch:由类似的子串聚合

时间:2018-03-15 14:40:03

标签: elasticsearch

我有一个文档索引,每个文档只有一个属性。记录就像

Products Sport
Products Health
Products Home
Questions CSS
Questions HTML
Questions JS

有很多文件有很多重复。问题是我可以通过“相似性”(在任何意义上)以某种方式将它们分组,并为每个文档添加“公共部分”,所以我会有类似的东西

Products Sport         Products
Products Health        Products
Products Home          Products
Questions CSS          Questions
Questions HTML         Questions
Questions JS           Questions

这仅用于分析目的,因此可能非常不准确,但应该足够快。

1 个答案:

答案 0 :(得分:0)

您要找的是_update_by_query。对于每个类别,添加一个名为category的字段并使用脚本

设置它的值
POST index/_update_by_query? conflicts=proceed
{
  "script": {
   "source": "ctx._source['category']='Products'",
    "lang": "painless"
 },
  "query": {
    "exists": {
      "field": "Products"
    }
  }
}

替代: 如果您只想对结果执行group by,那么您可以使用exists query子句获取特定类型的文档,然后对它们执行聚合而不更新文档