Elastic search setup task - noorzaman/emp GitHub Wiki
An elastic search instance has been added at:
https://search-emp-cixk22lczi5yrt4zd2dhswnltm.us-east-1.es.amazonaws.com/
For testing on your machine:
-
set alias so that you don't have to type in again and again:
addr=https://search-emp-cixk22lczi5yrt4zd2dhswnltm.us-east-1.es.amazonaws.com/ -
check that the alias has been set
echo $addr
In these simple tests, we will:
- create an index (think of a db table) called food and
- add several restaurants with different ethnicities
- each entry can be given an id or elastic search will automatically do it for us
curl -X DELETE "$addr/food" curl -X PUT "$addr/food" curl -X GET "$addr/food"?pretty curl -X POST "$addr/food/id1" -H'Content-Type: application/json' -d '{"restaurant":"indian", "flavor":"spicy"}' curl -X GET "$addr/food/_search?q=*&pretty"
Also checked in as: harard_square_starbucks.json
curl -X POST "$addr/emp/rooms/casual" -H'Content-Type: application/json' -d ' { "meeting_place": { "email":"[email protected]", "name":"Starbucks coffee at Harvard", "theme":"casual", "capacity":"unlimited", "description":"Starbucks coffee at Harvard square", "create_date":"20180304", "update_date":"20180304" }, "location": { "office_space":"false", "office":{ "room_name":"", "floor":"", "building":"" }, "other": { "business_name":"Petes", "street_address":"2780 Mowry Ave", "city": "Fremont", "zip_code":"94538", "state":"CA" } }, "tags":[ "wifi", "coffee", "breakfast", "snacks" ] }'
curl -X POST "$addr/emp/rooms/professional" -H'Content-Type: application/json' -d ' { "meeting_place": { "email":"[email protected]", "name":"Big conference room", "theme":"professional", "capacity":"25", "description":"The big room at Pfizer main building", "create_date":"20180304", "update_date":"20180304" }, "location": { "office_space":"true", "office":{ "room_name":"godzilla", "floor":"3", "building":"Pfizer Building 1" }, "other": { "business_name":"", "street_address":"", "city": "", "zip_code":"", "state":"" } }, "tags":[ "television", "projector", "speakerphone", "whiteboard" ] }'
To find all rooms:
curl -X GET "$addr/emp/rooms/_search?q=*&pretty"
To find a room by an attribute (or theme):
curl -X GET "$addr/emp/rooms/_search?q=meeting_place.theme:casual&pretty"
curl -X GET "$addr/emp/rooms/_mapping"?pretty
{"emp":{"mappings":{"rooms":{"properties":{"location":{"properties":{"office":{"properties":{"building":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"floor":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"room_name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"office_space":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"other":{"properties":{"business_name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"city":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"state":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"street_address":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"zip_code":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}},"meeting_place":{"properties":{"capacity":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"create_date":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"description":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"email":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"name":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"theme":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}},"update_date":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}},"tags":{"type":"text","fields":{"keyword":{"type":"keyword","ignore_above":256}}}}}}}}
Adding an _all index
curl -X PUT "$addr/emp?" -H'Content-Type: application/json' -d '{"mapping":{"rooms":{"_all":{"enabled":true}}}}'
Setting up a suggestions index https://search-emp-cixk22lczi5yrt4zd2dhswnltm.us-east-1.es.amazonaws.com/ curl -XPUT "$addr/sugg1?pretty" -H 'Content-Type: application/json' -d' { "mappings": { "doc" : { "properties" : { "suggest" : { "type" : "completion" }, "title" : { "type": "keyword" } } } } } ' curl -XPUT "$addr/sugg1/doc/1?refresh&pretty" -H 'Content-Type: application/json' -d' { "suggest" : { "input": [ "Nevermind", "Nirvana" ], "weight" : 34 } } ' curl -XPUT "$addr/sugg1/doc/2?refresh&pretty" -H 'Content-Type: application/json' -d' { "suggest" : [ { "input": "Nevermind", "weight" : 10 }, { "input": "Nirvana", "weight" : 3 } ] } ' curl -XPUT "$addr/sugg1/doc/3?refresh&pretty" -H 'Content-Type: application/json' -d' { "suggest" : [ "Neverland", "Nonetheless" ] } ' curl -XPOST "$addr/sugg1/_search?pretty&pretty" -H 'Content-Type: application/json' -d' { "suggest": { "song-suggest" : { "prefix" : "nir", "completion" : { "field" : "suggest" } } } } '
Add visual tags:
- set alias so that you don't have to type in again and again:
addr=https://search-emp-cixk22lczi5yrt4zd2dhswnltm.us-east-1.es.amazonaws.com/
curl -X DELETE "$addr/emptags" curl -X PUT "$addr/emptags"
curl -X POST "$addr/emptags/vtags/starbucks" -H'Content-Type: application/json' -d ' { "name": "Starbucks", "themes": [ "casual", "zen" ], "tags": [ "coffee", "mocha", "https://www.starbucks.com" ], "data": "https://s3.amazonaws.com/empstorage/bfd4e3fa-0055-4588-a700-f8a6658f5e2e" }'
curl -X POST "$addr/emptags/vtags/chipotle" -H'Content-Type: application/json' -d ' "name": "Chipotle", "themes": [ "casual", "zen" ], "tags": [ "burrito", "salad", "https://www.chipotle.com" ], "data": "https://s3.amazonaws.com/empstorage/bfd4e3fa-0055-4588-a700-f8a6658f5e2e" }'
curl -X GET "$addr/emptags/_search"?pretty
curl -X GET "$addr/emptags/vtags/_search"?pretty
curl -X GET https://search-emp-cixk22lczi5yrt4zd2dhswnltm.us-east-1.es.amazonaws.com/emp/rooms/_search?pretty -H 'Content-Type: application/json' -d' { "size": 0, "aggs": { "attributes": { "terms": { "field": "space.attributes.keyword", "size": 50000 } } } }'
curl -X POST "$addr/tags/fixed/tags_list" -H 'Content-Type: application/json' -d ' { "space": { "added_ts": "20180304", "name": "Fixed Tags", "image_key": "[email protected]", "image": "null", "updated_ts": "20180304", "attributes": [ "Whiteboard", "TV", "Projector", "Board Room", "Restaurant", "Cafe", "Table", "Chair", "Couch", "Desk", "Chalkboard", "Phone", "Speakers", "Outlets", "Smartboard", "Microphone", "Lecturn", "Auditorium", "Classroom", "Boardroom", "Theater", "Kitchenette", "Hallway", "Lounge", "Bar", "Indoor", "Outdoor" ], "capacity": 0, "themes": "FixedTags", "description": "Fixed common use tags for meeting spaces" } }'