ElasticSearch 版本:0.90.1,JVM:1.6.0_51(20.51-b01-457)
我试图用我的 ElasticSearch 查询做两件事:1)根据布尔值(可搜索)和“open_date <明天”过滤结果,2)按字段“open_date”DESC 进行两个排序
这会产生以下查询:
{
"query": {
"bool": {
"should": [
{
"prefix": {
"name": "foobar"
}
},
{
"query_string": {
"query": "foobar"
}
},
{
"match": {
"name": {
"query": "foobar"
}
}
}
],
"minimum_number_should_match": 1
},
"filtered": {
"filter": {
"and": [
{
"term": {
"searchable": true
}
},
{
"range": {
"open_date": {
"lt": "2013-07-16"
}
}
}
]
}
}
},
"sort": [
{
"open_date": "desc"
}
]
}
但是,返回的结果没有按“open_date”排序。如果我删除过滤器:
{
"query": {
"bool": {
"should": [
{
"prefix": {
"name": "foobar"
}
},
{
"query_string": {
"query": "foobar"
}
},
{
"match": {
"name": {
"query": "foobar"
}
}
}
],
"minimum_number_should_match": 1
}
},
"sort": [
{
"open_date": "desc"
}
]
}
...结果按预期返回。
有任何想法吗?