我使用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; }
}