====== Elasticsearch ====== The following assumes that elasticsearch is running on the localhost on port 9200. How do I learn more? https://www.elastic.co/guide/en/elasticsearch/reference/current/_executing_searches.html ===== General Info about elasticsearch instance ===== ==== How is elasticsearch doing? ==== curl -XGET 'localhost:9200/_cat/health?v&pretty' curl -XGET 'localhost:9200/_cat/nodes?v’ ==== What are the indices on this instance? ==== curl -XGET 'localhost:9200/_cat/indices?v&pretty’ ===== Searching Data ===== ==== Viewing Data ==== This will give you, by default, the first 20 results as prettified JSON curl –XGET ‘localhost:9200/index/_search?pretty’ ==== Filtering Results ==== Only get results that match certain criteria: curl -XGET 'localhost:9200/index/_search?pretty' -H 'Content-Type: application/json' –d’{"query": { "match": { "field": "value" } } }' curl -XGET 'localhost:9200/index/_search?pretty' -H 'Content-Type: application/json' –d’{ "query": { "bool": { "must": [ { "match": { "address": "mill" } }, { "match": { "address": "lane" } } ] } } }' ==== Sorting Examples ==== Search ''index'', matching all, and sorting by ''field'' curl -XGET 'localhost:9200/index/_search?q=*&sort=field:asc&pretty’ Search ''index'', matching all, and sorting by ''field'' curl -XGET 'localhost:9200/index/_search?pretty' -H 'Content-Type: application/json' -d’ { "query": { "match_all": {} }, "sort": [ { "field": "asc" } ] }' ==== Limiting Results ==== Only give one result back from searching ''index'': curl -XGET 'localhost:9200/index/_search?q=*&size=1&pretty' Give back one result, starting at search result 10, from ''index'' curl -XGET 'localhost:9200/bank/_search?q=*&size=1&from=10&pretty' ==== Aggregations ==== Finding distinct entities curl -XGET 'localhost:9200/bank/_search?pretty' -H 'Content-Type: application/json' -d' { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword" } } } }' ===== Adding Information ===== ==== Adding an index ==== curl -XPUT 'localhost:9200/newindex?pretty’ ==== Inserting documents to an index ==== Insert the JSON document (after the -d) into the index with the id ''newid'': curl –XPUT ‘localhost:9200/index/external/newid?pretty’ –d’{“field”:”data”}’ ==== Adding from a File ==== mongoimport --db dbname --collection whichcollection --file mydata.json curl -XPOST 'http://localhost:9200/dbname' -d @mydata.json curl -XPOST 'http://localhost:9200/dbname/_bulk' —data-binary @mydata.json ===== Deleting Information ===== curl -XDELETE 'localhost:9200/students?pretty'