elasticsearch 带嵌套api的elasticsearch日期\范围查询
我在惊奇漫画插件中运行了一个查询,它运行良好(返回4个文档),如下所示 我想用C#with NEST进行这个查询,我希望这个表达式的插件得到相同的结果,但它返回0 函数调用:
elasticsearch 带嵌套api的elasticsearch日期\范围查询,
elasticsearch,nest,
elasticsearch,Nest,我在惊奇漫画插件中运行了一个查询,它运行良好(返回4个文档),如下所示 我想用C#with NEST进行这个查询,我希望这个表达式的插件得到相同的结果,但它返回0 函数调用: EsCodes myes = new EsCodes(); myes.CreateConnection("localhost", "dota2"); var result = myes.getDatasBetweenDates("01/01/2010 00:
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;
}
public List getDatasBetweenDate(字符串startdate,字符串enddate)
{
ElasticClient myes=this.getConnection();
列表索引=新列表();
如果(myes!=null)
{
var result=myes.Search(q=>q.Query(p=>p.Range(v=>v.OnField(“dateofplay”)。greaterequals(startdate)。lowerequals(enddate)))。Size(10))。文档;
}
...
回报指数;
}
这有什么不对
EDIT:我识别了NEST contaims创建的url。“/dota2/object/\u search..”
我不明白为什么它包含那种参数。。这就是我的问题所在。为什么它会在url中生成对象 请注意,在两个查询中使用的日期并不相同 在惊奇漫画中,您使用
“22/06/2010 00:00:00”
和“16/09/2015 00:00:00”
在您的代码中使用“22/06/2012 00:00:00”
和“16/09/2014 00:00:00”
因此,这可能是您无法从代码中获得任何结果的唯一原因。请以文本形式而不是屏幕截图形式提供相关的C#/NEST代码。这将使其他人在将来更容易搜索。你是对的。完成。您还可以使curl查询与C#/NEST查询匹配吗?在curl请求中,您正在搜索单个索引,在C#/NEST-all索引中。如果在添加其他索引时出现问题,那么在curl中会更加明显。@imotov我添加了连接函数,我也在嵌套中搜索相同的索引。但是返回0个文档。日期是DateTime格式的?很遗憾,不是。。我错过了之前的拍摄,但是两个日期参数都是一样的。编辑了。我想我知道原因了。。url中有一个额外的参数。这是毫无意义的,“/dota2/object/\u search…”哦,是的,这可能不是正确的映射类型,应该是
agust
。是的,我通过使用“search(q=>q.Index(“dota2”).AllTypes()”编辑查询解决了这个问题。现在一切都好了。谢谢你瓦伦丁。你总是激励我:)