作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个带天路由键的Elasticsearch索引,格式为"yyyyMMdd"
。每天都会添加许多新文档。在本月底,我想查询是否有某天由于某种原因没有添加源文件。有一个source_id
字段表示源。
到目前为止,我需要给出所有路由键,例如20160101
,20160102
等,并按source_id
进行过滤。但是,这可能会返回成百上千的文档,我可能需要对它们全部进行分页。
有没有办法只知道是否有一个路由键没有与给定的source_id
匹配的文档,所以从本质上来说,我只会将31个文档或更少的文档返回给我的应用程序代码,因此遍历并检查很容易如果一天没有文件。
有任何想法吗?
最佳答案
您可以在 Terms Aggregation
字段上使用 _routing
来知道使用了所有路由值。请参阅下面的查询:
POST <index>/<type>/_search
{
"size": 0,
"query": {
"term": {
"source_id": {
"value": "VALUE" <-- Value of source_id to filter on
}
}
},
"aggs": {
"routings": {
"terms": {
"field": "_routing",
"size": 31 <-- We don't expect to get more than 31 unique _routing values
}
}
}
}
var response = client.Search<object>(s => s
.Index("<index name>")
.Type("<type>")
.Query(q => q
.Term("source_id", "<source value>"))
.Aggregations(a => a
.Terms("routings", t => t
.Field("_routing")
.Size(31))));
var routings = response.Aggs.Terms("routings").Items.Select(b => b.Key);
routings
将包含您需要的路由值列表。
关于elasticsearch - 从每条Elasticsearch route 获取第一个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34796645/
我刚开始使用 Gnu Plot 并创建了一些简单的绘图。但是现在我遇到了一个新问题。 输入是这样的 csv 文件: name;n0;n1;n2 Benj;1;3;2 Silv;6;1;2 Steffi
我在 MongoDB 中有 2700 条记录。每个文档的大小约为 320KB。我使用的引擎是wiredTiger,集合的总大小约为885MB。 我的 MongoDB 配置如下: systemLog:
我是一名优秀的程序员,十分优秀!