1

フィルタにネストすることはできますか?このようなものをフィルタリングしたい...a=1 AND ( d=NULL OR d>5 )

誰か助けてもらえますか?

4

2 に答える 2

1

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。

于 2011-06-13T21:53:58.487 に答える
0

これは少し遅いかもしれませんが、他の誰かがこれを探しているなら、検索語とフィルターを簡単に追加できることがわかりました。クエリでより多くの単語を使用し、スペースで区切ります。

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

于 2013-04-16T14:03:16.467 に答える