More Related Content
Similar to MySQLユーザ視点での小さく始めるElasticsearch (20)
More from Kentaro Yoshida (11)
MySQLユーザ視点での小さく始めるElasticsearch
- 2. 1. はじめに
2. 自己紹介
3. 今回のテーマ
本日の流れ
4. Yamabikoの紹介
5. 検索ことはじめ
6. Elasticsearch雑感
7. まとめ
page 2
- 37. 検索クエリ
curl -X POST 'http://localhost:9200/livedoor-gourmet/_search?pretty' -d '{
"query":{
"query_string":{
"query":"name:ワイン AND pref_id:13"
Luceneクエリで条件指定
}
いわゆるWHERE句
},
"sort" : [
並び替え条件を指定
{ "access_count" : "desc" },
ORDER BY access_count DESC ...
"fan_count",
"_score"
],
範囲選択 LIMIT 0, 10
"from" : 0, "size" : 10
}'
page 37
- 40. 緯度経度検索
# mapping定義を行った後にデータを流し込む
$ curl -XPUT "http://localhost:9200/livedoor/restaurants/_mapping" -d '
{
"restaurants" : {
"properties" : {
"location": {
"type": "geo_point",
"lat_lon": "true"
}
}
}
}'
page 40
- 41. 緯度経度検索
# 検索例 渋谷近辺で店名に「ワイン」を含むお店を10件リストアップします
$ curl -XGET "http://localhost:9200/livedoor/restaurants/_search?pretty" -d '
{
"query" : {
"filtered" : {
"query":{
"query_string":{
"query":"name:ワイン"
}
},
"filter" : {
"geo_distance" : {
"distance" : "1km",
"location" : {
"lat" : 35.3924,
"lon" : 139.4157
}
}
}
}
},
"from" : 0, "size" : 10
}'
page 41
- 44. Analyzer
Kuromojiの利用方法
環境:Elasticsearch 1.0.0 RC2 RPM
注意点
次のような手順でプラグインをインストール
indexを作る前に登録する必要がある(既にある場合は作り直し)
プラグインを入れた後はelasticsearchを再起動する
$ cd /usr/share/elasticsearch
$ sudo ./bin/plugin --install
elasticsearch/elasticsearch-analysis-kuromoji/2.0.0.RC1
$ sudo /etc/init.d/elasticsearch restart
page 44
- 45. Analyzer
$ curl -XPUT 'http://localhost:9200/livedoor/' -d'
{
"index":{
"analysis":{
"tokenizer" : {
"kuromoji" : {
"type" : "kuromoji_tokenizer",
"mode" : "extended"
}
},
"analyzer" : {
"analyzer" : {
"type" : "custom",
"tokenizer" : "kuromoji"
}
}
}
}
}'
page 45