elasticsearch date_range 查询 witn nest api

elasticsearch date_range query witn nest api

我在 marvel 插件中 运行 查询,它工作正常(return 4 文档),如下所示

我想在 C# 中使用 NEST 进行此查询,我希望此表达式的插件结果相同,但它 returns 0..

函数调用:

EsCodes myes = new EsCodes();
                myes.CreateConnection("localhost", "dota2");
                var result = myes.getDatasBetweenDates("01/01/2010 00:00:00", "01/01/2015 00:00:00");

连接:

private static ElasticClient es = new ElasticClient();
      public void CreateConnection(string hostname, string defaultIndex)
        {
            var node = new Uri(string.Format("http://{0}:9200", hostname));
            var settings = new ConnectionSettings(node).SetDefaultIndex(defaultIndex).UsePrettyResponses();
            es = new ElasticClient(settings);
        }

和功能:

public List<IndexModel> getDatasBetweenDates(string startdate, string enddate)
        {
            ElasticClient myes = this.getConnection();
            List<IndexModel> indices = new List<IndexModel>();
            if (myes != null)
            {
                var result = myes.Search<dynamic>(q => q.Query(p => p.Range(v => v.OnField("dateofplay").GreaterOrEquals(startdate).LowerOrEquals(enddate))).Size(10)).Documents;
            }
                ...
                return indices;
            }

这有什么问题吗?

编辑: 我认出了由 NEST 创建的 url 包含“../dota2/object/_search..” 我不明白为什么它包含那种参数..这是我的问题所在。为什么它在 url 中生成对象?

请注意,您在两个查询中使用的日期不同。

在 Marvel 中您使用 "22/06/2010 00:00:00""16/09/2015 00:00:00"

在您的代码中,您使用 "22/06/2012 00:00:00""16/09/2014 00:00:00"

所以这可能是您没有从代码中获得任何结果的唯一原因。