フィルタにネストすることはできますか?このようなものをフィルタリングしたい...a=1 AND ( d=NULL OR d>5 )
誰か助けてもらえますか?
フィルタにネストすることはできますか?このようなものをフィルタリングしたい...a=1 AND ( d=NULL OR d>5 )
誰か助けてもらえますか?
Elastic Searchでは、次のようなLuceneクエリ文字列を使用できます。
http://www.elasticsearch.org/guide/reference/query-dsl/query-filter.html
これは、グループ化に()を使用する方法のリファレンスです...注意すべき点の1つは、グループステートメントの前に+を付けると、より正確な結果が返される必要があることです。
http://lucene.apache.org/java/3_2_0/queryparsersyntax.html
グループ化は最後です。
...ああ、RangeQueryよりも大きい記号を使用する場合は、上限または下限のいずれかをnullに設定することで、このケースをカバーできます。
J。
これは少し遅いかもしれませんが、他の誰かがこれを探しているなら、検索語とフィルターを簡単に追加できることがわかりました。クエリでより多くの単語を使用し、スペースで区切ります。
Scalaの例:
val queryString = client.prepareSearch().setQuery(QueryBuilders.matchQuery("json.path.to.node", "sky car")).setSize(MAX_RESULTS)
val response = queryString.execute().actionGet()
これで、応答には両方を含むすべての結果が含まれますsky AND car