elasticsearch - 如何使FacetFilter正常工作?

标签 elasticsearch logstash nest

我正在尝试在很短的时间范围内通过Elasticsearch计算一些统计信息,但是,尽管我指定了间隔,但仍然可以从整个数据集中获得结果。

这是我的代码

var minDate = new DateTime(1970, 1, 1);
var fromDate = DateTime.Parse("2014-11-27T11:00:00.000Z").AddTicks(-minDate.Ticks).AddHours(-2);
var toDate = DateTime.Parse("2014-11-27T11:15:00.000Z").AddTicks(-minDate.Ticks).AddHours(-2);

var results = client.Search<Dalsp>(s => s
    .From(0)
    .Size(100)
    .FacetTermsStats(fts => fts
        .FacetFilter(fdesc => fdesc
            .Range(range =>
                range.Greater(fromDate.Ticks / 10000).Lower(toDate.Ticks / 10000)
            )
        )
        .KeyField(t => t.sp_name)
        .ValueField(t => t.total_time)
    )
);

可能是什么问题?提前致谢。

最佳答案

使用字符串作为时间戳后,而不是使用long来解决问题。

 var results = client.Search<Dalsp>(s => s
        .From(0)
        .Size(100)
        .Query(q =>
            q.Range(range => range.OnField("@timestamp").LowerOrEquals(endDateStr).GreaterOrEquals(startDateStr))
        )
        .FacetTermsStats(fts => fts
            .KeyField(t => t.sp_name)
            .ValueField(t => t.total_time)
        )
    );

关于elasticsearch - 如何使FacetFilter正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27170236/

相关文章:

elasticsearch - Elasticsearch-Nest-缺少第一个字符

python-3.x - 对 Tornado 使用elasticsearch_async

logstash - filebeat 将日志直接发送到 Elastic Search,而不是 Logstash

elasticsearch - 修改Elasticsearch中的映射显示奇怪的行为

spring - 使用 Spring-boot 配置的 Logstash/Logback 设置

json - 如何解析包含带Logstash的JSON的CSV

c# - 使用NEST的elasticsearch : How to use document versioning?

json - GetMapping 不适用于 Elasticsearch 中的 Nest 客户端

java - ElasticSearch Lucene 使用 Java API 进行全文搜索

c# - 在NEST中创建IndexName的实例