ElasticSearchのお勉強中
elasticsearchを使ってみた
1. データの登録
POST
http://localhost:9200/twitter/tweet
request body
{ "tweet":"ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" }
response
{ "_index": "twitter", "_type": "tweet", "_id": "e79Bx6MEQ_u6XhMz4R4sEg", "_version": 1, "created": true }
2. 一件取得
GET
http://localhost:9200/twitter/tweet/e79Bx6MEQ_u6XhMz4R4sEg
{ "_index": "twitter", "_type": "tweet", "_id": "e79Bx6MEQ_u6XhMz4R4sEg", "_version": 1, "found": true, "_source": { "tweet": "ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" } }
3. 検索
GET
http://localhost:9200/twitter/tweet/_search
o
http://localhost:9200/*/tweet/_search
http://localhost:9200/_all/tweet/_search
http://localhost:9200/twitte*/tweet/_search
http://localhost:9200/twitte*/tweet1,tweet2/_search
x
http://localhost:9200/_all/*/_search
{ "took": 2, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 3, "max_score": 1, "hits": [ { "_index": "twitter", "_type": "tweet", "_id": "e79Bx6MEQ_u6XhMz4R4sEg", "_score": 1, "_source": { "tweet": "ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" } }, { "_index": "twitter", "_type": "tweet", "_id": "7plY2ahJTLGkhjF6tG3jOQ", "_score": 1, "_source": { "tweet": "ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" } }, { "_index": "twitter", "_type": "tweet", "_id": "vQNGXh-NR0aA6IkyTDR1Ig", "_score": 1, "_source": { "tweet": "ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" } } ] } }
query
http://localhost:9200/twitter/tweet1,tweet2/_search
request body
{ "query": { "term": {"name":"hase"} } }
response
{ "took": 3, "timed_out": false, "_shards": { "total": 5, "successful": 5, "failed": 0 }, "hits": { "total": 2, "max_score": 0.5945348, "hits": [ { "_index": "twitter", "_type": "tweet1", "_id": "V0wxff00TPOjA-ZkjJp5Nw", "_score": 0.5945348, "_source": { "tweet": "ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" } }, { "_index": "twitter", "_type": "tweet2", "_id": "mp78tH-tRRGD_31cQ7Ij-g", "_score": 0.30685282, "_source": { "tweet": "ほげほげ", "time": "2014-05-10T00:00:00Z", "name": "hase" } } ] } }
http://localhost:9200/twitter/tweet1,tweet2/_search
from_size
{ "from": 1, "size":1, "query": { "term": {"name":"hase"} } }
インデックスをうまく設計するのが重要そう
参考:
https://medium.com/hello-elasticsearch/elasticsearch-api-83760ce1424b