エラスティックサーチ バージョン: 0.90.1、JVM: 1.6.0_51(20.51-b01-457)
私はElasticSearchクエリで2つのことをしようとしています.1)ブール値(検索可能)と「open_date <明日」に基づいて結果をフィルタリングし、2)フィールド「open_date」DESCで2つ並べ替えます
これにより、次のクエリが生成されます。
{
"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"
}
]
}
...結果は期待どおりに返されます。
何か案は?