質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

0回答

2888閲覧

ElasticsearchのJavaクライアントにおける、クエリーの書き方

mishrun

総合スコア11

Elasticsearch

Elasticsearchは、クラウド向けに構築された、RESTful な API を提供する分散型のサーチエンジンアプリケーションです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2017/07/07 11:50

エラスティックサーチの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

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問