Solr 使用两个日期字段的Elasticsearch daterange
我从客户端发送一个查询,查询Solr 使用两个日期字段的Elasticsearch daterange,solr,
elasticsearch,lucene,search-engine,Solr,
elasticsearch,Lucene,Search Engine,我从客户端发送一个查询,查询currentDate位于附加到所有文档的两个值之间的文档。这些文档有一个expireDate和一个availableDate 我如何表述这个查询?作为猜测,我得出了以下不可行的结论: { "constant_score": { "filter": { "range" : { "expiredate" : { "lte": "2015-08-15T11:28:45.114-07:00" },
currentDate
位于附加到所有文档的两个值之间的文档。这些文档有一个expireDate
和一个availableDate
我如何表述这个查询?作为猜测,我得出了以下不可行的结论:
{
"constant_score": {
"filter": {
"range" : {
"expiredate" : {
"lte": "2015-08-15T11:28:45.114-07:00"
},
"availabledate" : {
"gte": "2015-08-11T11:28:45.114-07:00"
}
}
}
}
}
这甚至看起来是错误的,因为afaik范围在复合对象或单面范围数组上不起作用。我想我可以为每个字段添加一个新的过滤器。有没有一种方法可以将一个日期范围用于两个字段?表达该查询的正确方法是使用两个
range
过滤器(每个日期字段一个),然后将它们放在另一个bool/must
过滤器中
{
"query": {
"constant_score": {
"filter": {
"bool": {
"must": [
{
"range": {
"expireDate": {
"lte": "2015-08-15T11:28:45.114-07:00"
}
}
},
{
"range": {
"availabledate": {
"gte": "2015-08-11T11:28:45.114-07:00"
}
}
}
]
}
}
}
}
}