我正在调用ElasticSearch
来获取文档,然后将其加载到内存中。
我下面有一个使用DateRange
的代码,它说给我的文档大于currentDocumentTime
。
ISearchResponse<DataHolder> docManifests = await queryClient.SearchAsync<DataHolder>(search => search
.Index("full_processVersion")
.Type("ProcessVersion")
.Query(query => query
.DateRange(dateRangeQuery => dateRangeQuery
.Field("DocumentCreatedDate")
.GreaterThan(currentDocumentTime.Value))));
现在,我正在考虑是否有任何方法可以修改上述查询,而不是在GreaterThan
上使用currentDocumentTime
查询-我可以说给我所有GreaterThan
或LessThan
currentDocumentTime
的文档。基本上,想法是进行字符串比较,这意味着给我文档任何与
currentDocumentTime
不匹配的日期。例如,如果
currentDocumentTime
是10月10日,并且10月9日存在一些文档,那么我也应该能够得到它。这有可能吗?
最佳答案
您也可以在日期类型字段上使用term
。因此,您的elasticsearch查询如下所示:
{
"query": {
"bool": {
"must_not": [
{
"term": {
"DocumentCreatedDate": "Your Requested time"
}
}
]
}
}
}
关于c# - 如何通过使用日期作为 Elasticsearch 的字符串比较来获取文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64301422/