サナギわさわさ.json

サナギさんとキルミーベイベーとプログラミングが好きです

ElasticSearchのデータ投入と削除の基本コマンドまとめ

オープンソース全文検索エンジンといえばApache Solrだとずっと思っていたのですが、他にもElasticSearchというものがあって最近ではそちらが流行っているようです。
調べてみたら結構前から流行っていたようで今更知ったのは少し恥ずかしいのですが、キルミーベイベーのアニメが終わった後は暫く放心状態で今でもそのあたりの記憶が無いのでたぶんそのせいでしょう。

少し触る機会があったのですが、同じLuceneベースということで、検索機能自体にはそこまで差が無いという印象でした。データ投入がJson形式で行えるというのと、管理画面が今風で監視ツールが充実しているというぐらいしか差が分からなかったので誰か教えて下さい。(データ分散がしやすいらしいけどまだ分散させてない)

とりあえずElasticSearchの基本コマンドを備忘録がてら載せておきます。

スキーマ構造の確認

http://localhost:9200/index_name/_mapping?pretty

スキーマの登録
curl -XPOST http://localhost:9200/index_name -d @mapper.json
データの登録
curl -XPOST http://localhost:9200/_bulk --data-binary @databatch.json >/dev/null
全データの削除
curl -XDELETE 'http://localhost:9200/*'
mapper.jsonとdatabatch.jsonの構造
//mapper.json
{
    "mappings" : {
      "test" : {
        "properties" : {
          "id" : {
            "type" : "string"
          },
          "location" : {
            "type" : "geo_point",
            "lat_lon" : true,
            "geohash" : true
          },
          "create_at" : {
            "type" : "date",
            "format" : "dateOptionalTime"
          }
        }
      }
    }
}
//databatch.json
{ "index": { "_index": "index_name", "_type": "test", "_id":"1"}}
{ "id": "1","create_at": "2015/01/22 01:55:55","location": "{ "lat":"35.649154","lon":"139.830131"}}
{ "index": { "_index": "index_name", "_type": "test", "_id":"2"}}
{ "id": "2","create_at": "2015/01/22 01:58:18","location": "{ "lat":"35.649168","lon":"139.830137"}}

Solrより歴史が浅い分ネットにノウハウが溜まってない感はありまして、はまった時に解決まで時間がかかりがちなのは個人的な難点です。