elasticsearch - Elasticsearch中带有正则表达式的聚合

标签 elasticsearch substring distinct aggregation

我是Elasticsearch的新手,我想学习如何为子字符串编写不同的查询。就像我们在SQL中一样:

SELECT distinct substring(abc,3,5)
FROM table_a

我有这个查询,我想对消息的substring(message,35,10)部分做出不同的选择:
{   
"query" : 
{ "range":{
        "@timestamp" : {
            "gte" : "now-6d/d",
            "lt" :  "now-5d/d"
        }
}},
"_source":["@timestamp","message"],
"size":100,
"from":0
}

我想我必须添加类似的内容:
"aggs": {
    "distinct": {
        "terms": {
            "field": "message",--should have something like substring 
            "size": 0
        }
    }
}

谢谢您的帮助。

最佳答案

您可以在“条款汇总”中使用"script"而不是"field"。在这里,您可以使用字段值执行子字符串或任何常见操作。

注意:在聚合中使用脚本可能会使查询执行非常慢!

Terms Aggregation - Scripts

关于elasticsearch - Elasticsearch中带有正则表达式的聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41598692/

相关文章:

javascript - 如何使用 node.js 和 express 将结果写入文件?

c - 如何检查一个字符串是否包含在另一个字符串中?

sql-server - SQLServer 中子字符串与右左组合的相对性能

elasticsearch - 删除旧索引elasticsearch?

ruby-on-rails - 如何在Rails Elasticsearch上模糊匹配 ruby 。

elasticsearch - 如何在 Elasticsearch 中检查为不同标记器生成的标记

java - 它只给出一个字符串作为输出

MySQL 查询以检索移动 DATE 期间之间的 DISTINCT COUNT

c# - 如何在 C# 中报告对 .Distinct() 的长调用的进度

c# - 仅通过一个字段从对象列表中查找不同的值