elasticsearch-grails-plugin については、
elasticsearch grails plugin を入れる
elasticsearch grails plugin 詳細設定
elasticsearch grails plugin index編
で紹介した。
今回は、search編。
注意!
日付での検索は注意が必要なので、日付を使う検索は一番したの記述をみてください。
Query Strings で検索する方法
search() で、中に検索条件を書く
結果は以下のようになる。
result.searchResults : 検索結果
result.total : 検索のトータル
一回の検索で、全件は取れない。全件とるには total の数になるか、searchResults がなくなるまで検索する。
その時は、 以下のように、from を使うとよい。
Query Strings で複雑なクエリ
QueryString の文法は
http://lucene.apache.org/core/3_0_3/queryparsersyntax.html にある。
例えば、AND でつなげたい場合は、
Query Closure で検索する方法
こちらは、Elasticsearch での検索と同じような感覚で使える。
内部で if文も使える。
日付の扱い
search は日付の検索に注意。
Config.groovy で、
で、日付のフォーマット変更できるみたいだけど、将来変わる可能性ありとの事なので、標準のまま利用する。
標準だと、以下のような形式で入っているので、検索するときはこの形式にする
SimpleDateFormat を使うとこんな感じ
ただし、検索のときにロケール/Timezone を意識してね。