エラスティックサーチのjavaクライアントを利用し、
全文検索の検索アプリを構築しています。
(indexは構築済みです)
下記のクエリーをエラスティックサーチのjavaクライアントで、
再現したいのですが、
どうもうまくいきません。
どなたか、javaクライアントに詳しい方、いらっしゃいましたら、
ご教授いただけないでしょうか?
# 実行したいクエリー(sampleフィールドに、javaかつphpがあるもの) { "query": { "bool": { "must": [{ "match": { "sample": "java" }}, {"match": { "sample": "php" } }] } }, "size": 50 }
# javaクライアントでの、クエリー組み立て BoolQueryBuilder boolQuery = QueryBuilders.boolQuery(). must(QueryBuilders.matchQuery("sample", "test")); SearchRequestBuilder builder = client.prepareSearch() .setSize(50) .setQuery(boolQuery); System.out.println(builder);
# ↑の処理で作られたクエリー { "size" : 50, "query" : { "bool" : { "must" : [ { "match" : { "sample" : { "query" : "test", "operator" : "OR", "prefix_length" : 0, "max_expansions" : 50, "fuzzy_transpositions" : true, "lenient" : false, "zero_terms_query" : "NONE", "boost" : 1.0 } } } ], "disable_coord" : false, "adjust_pure_negative" : true, "boost" : 1.0 } }, "ext" : { } }
出力してみると、matchの中に、余計なプロパティが入ってしまっています。。。
また、複数の単語にマッチする書き方も、いまだ分かりません。
どなたか、お知恵をお貸しください。。。
環境
- 言語:Java8
- フレームワーク:Spring
- Elasticsearchクライアント(jar)のver
- org.elasticsearch:5.1.1
- org.elasticsearch.client:5.1.1
- Elasticsearchのver:5.3.1
あなたの回答
tips
プレビュー