LoginSignup
1
1

More than 5 years have passed since last update.

Elasticsearch(2.4)のQuery一覧 ~その1~

Posted at

ElasticsearchのQuery一覧

Elasticsearch使い始めて少し慣れてきたので、ドキュメントにあるQueryを簡易翻訳しつつまとめる。最初は一回で全部書くつもりだったけど、結構量があったので何回かに分けて書くことにした。
実用例等踏まえて書くよー!

Match All Query

全てのドキュメントにマッチするQuery。
inner_hitsでChildTypeのものを引っ張ってきたり、Nested QueryHas Child QueryHas Parent QueryのようなJoining queriesで使うことが多い。

Full Text Query

全部検索する時に使う。検索するテキストもフィールドに指定されているanalyzer、またはQuery内指定したanalyzerで分解、変換してから検索をかけるよ。日本語検索しようとした時、デフォルトのanalyzerだと大体うまくいかないので、kuromoji_analyzerを使って検索することが多い。英語の場合はデフォルトでも結構いける。

Match Query

基本的にこれ使っておけばおkみたいなQuery。
テキストでしか使ったことないけど、数字とか日付でも使えるみた。

Multi Match Query

Match Queryの複数のフィールドを選択できるもの。
スコアリングの方法にbest_fieldsmost_fields等ある。

Common Terms Query

よく出てくる単語("The", "and", "not"等)があると、サーチテキストに対してい本当に関係性の高いものが抽出されなくなる問題を解決するためのQuery。
よく出てくる単語に対するウェイトを低下させ、あまり出てこない単語のウェイトを上げる方式をとっている。
学校の検索とかするときに使えそう。

Query String Query

自分好みのFull Text Queryを作りたいときに使うQuery。
色々設定できるみたい。

Simpe Query String Query

query_string の例外を投げなかったり、無効なQueryを無視するQuery。

 まとめ

Full Text QueryMatch Queryで事足りる。
Match Queryでスコアリングがうまくいかない時に他のQueryを使うことを検討するのがいい。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1