通过elasticsearch中的查询计算元素

时间:2015-04-29 11:15:33

标签: c# nest elasticsearch

我使用NEST C#库将616个元素插入(批量)到elasticsearch 1.5.1。我看到使用Kibana的文档,但是当我尝试用NEST计算它们时,我总是得到零结果。

var result = ElaticClient.Count<Bzp>(c => c
                .Query(q => q
                    .Range(r => r
                        .OnField(f => f.pubDate)
                        .Lower(to)
                        .GreaterOrEquals(from))
                    )
            );

return result.Count; //result is 0 but should be 616


StatusCode: 200, 
    Method: POST, 
    Url: http://localhost:9200/_count, 
    Request: {
  "query": {
    "range": {
      "pubDate": {
        "gte": "2015-04-29T00:00:00.000",
        "lt": "2015-04-30T00:00:00.000"
      }
    }
  }
}, 
    Response: {"count":0,"_shards":{"total":6,"successful":6,"failed":0}}

_

 ElasticClient.Count<Bzp>().Count //returns correct number of items 

更新: 所有文件都有日期(pubDate字段)2015年4月29日,00:00:00.000,恕我直言应该按过滤器计算。

更新: 类型注册由NEST完成

 ElasticClient.DeleteIndex("bzp");
            ElasticClient.CreateIndex("bzp");

            IdFieldMappingDescriptor desc = new IdFieldMappingDescriptor() {   };

            ElasticClient.Map<Bzp>(s => s.MapFromAttributes()
                .IdField(q=>q.Path("Id"))
                .TimestampField(z => z.Enabled(true).Path(q => q.Timestamp)));

和Bzp班

public class Bzp
    {
        public DateTime Timestamp { get; set; }
        public string Id { get; set; }
        public DateTime pubDate { get; set; }
     }

0 个答案:

没有答案
相关问题