私はElasticSearchを使用しており、特定の範囲内で結果をソートしようとしています。 これは私の必要条件です。私は検索結果に特定の範囲の給与を持ち、それらを並べ替えることを望んでいます。 だからここに私がしようとしているクエリです:範囲内の検索結果を並べ替えるにはどうすればいいですか?
curl -XPOST 'localhost:9200/employee/_search?pretty' -d '
{
"query": { "match_all": {} },
"sort" : {
salary : {
"range" : {
"gte": 20000,
"lte": 30000
}
}
}
}'
をしかし、これを実行したときに、私は次の例外を取得しています:
"error" : "SearchPhaseExecutionException[Failed to execute phase [query], all `shards failed; shardFailures {[eUQoAs5YTV-4zV0is80k-w][bank][0]: SearchParseException[[bank][0]: query[ConstantScore(*:*)],from[-1],size[-1]: Parse Failure [Failed to parse source [\n{\n \"query\": { \"match_all\": {} },\n \"sort\" : {\n balance : {\n \"range\" : {\n \"gte\": 20000,\n \"lte\": 30000\n }\n }\n }\n}]]]; nested: ElasticsearchIllegalArgumentException[sort option [range] not supported]; }`
私はミスを作っていますどこ私は得ていないのです...
は
はまだ... – KayV
ストレンジをSearchPhaseExecutionExceptionを取得し、それは完全に私の場合で動作します。.. – christinabo
@KayVこの答えは動作するはずです、エラーSearchPhaseExecutionExceptionましたソートブロック内の範囲を配置しようとしているため、この回答でソートが適切に移動されてエラーが発生しないようにしてください。おそらくダブルチェックが必要です –