Down and dirty with Elasticsearch

  • 8,406 views
Uploaded on

An introduction to Elasticsearch for the programmer. The basic concepts you need to understand to use Elasticsearch as a search engine

An introduction to Elasticsearch for the programmer. The basic concepts you need to understand to use Elasticsearch as a search engine

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
8,406
On Slideshare
0
From Embeds
0
Number of Embeds
11

Actions

Shares
Downloads
279
Comments
0
Likes
22

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGetting Down and Dirtywith Elasticsearch@clintongormleyBerlin Buzzwords 2013
  • 2. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearch
  • 3. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics engine
  • 4. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributed
  • 5. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributedscalesmassively
  • 6. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributedscalesmassivelyhighavailability
  • 7. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributedscalesmassivelyhighavailabilityRESTfulAPI
  • 8. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributedscalesmassivelyhighavailabilityRESTfulAPIJSONover HTTP
  • 9. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributedscalesmassivelyhighavailabilityRESTfulAPIJSONover HTTPschemafree
  • 10. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics enginedistributedscalesmassivelyhighavailabilityRESTfulAPIJSONover HTTPschemafreemultitenancy
  • 11. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics engineopen-sourcedistributedscalesmassivelyhighavailabilityRESTfulAPIJSONover HTTPschemafreemultitenancy
  • 12. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedElasticsearchreal time,search andanalytics engineopen-sourceLucenebaseddistributedscalesmassivelyhighavailabilityRESTfulAPIJSONover HTTPschemafreemultitenancy
  • 13. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCool.
  • 14. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCool. Bonsai cool...
  • 15. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedThis is WHY we use it...
  • 16. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> ./bin/elasticsearch> _
  • 17. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedBut HOW do we use it?
  • 18. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?pretty
  • 19. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?prettyverb
  • 20. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?prettynode
  • 21. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?prettyHTTP port
  • 22. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?prettypath
  • 23. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?prettyquery string
  • 24. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited> curl -XGET localhost:9200/?pretty
  • 25. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /
  • 26. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /{"name" : "Exploding Man","tagline" : "You Know, for Search","ok" : true,"status" : 200,"version" : {"number" : "0.90.1","snapshot_build" : false}}
  • 27. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedWhere do we start?
  • 28. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedWith data
  • 29. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet": "I think #elasticsearch is AWESOME","nick": "@clintongormley","name": "Clinton Gormley","date": "2013-06-03","rt" : 5,"loc": {! "lat": 13.4,! "lon": 52.5}
  • 30. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedHow to put it into ES?
  • 31. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /index/type/id
  • 32. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /index/type/idwhere?
  • 33. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/type/id
  • 34. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/type/idwhat?
  • 35. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/id
  • 36. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/idwhich?
  • 37. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/1
  • 38. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/1 -d {"tweet": "I think #elasticsearch is AWESOME","nick": "@clintongormley","name": "Clinton Gormley","date": "2013-06-03","rt": 5,"loc": {! "lat": 13.4,! "lon": 52.5}}
  • 39. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"_index": "myapp","_type": "tweet","_id": "1","_version": 1,"ok": true}# 201 CREATED
  • 40. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGet
  • 41. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /myapp/tweet/1
  • 42. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"_index": "myapp","_type": "tweet","_id": "1","_version": 1,"exists": true,"_source": { ...OUR TWEET... }}# 200 OK
  • 43. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedExists?
  • 44. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedHEAD /myapp/tweet/1
  • 45. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedHEAD /myapp/tweet/1 # 200 OK
  • 46. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedHEAD /myapp/tweet/1 # 200 OKHEAD /myapp/tweet/2 # 404 Not Found
  • 47. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedUpdate
  • 48. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/1 -d {"tweet": "I know #elasticsearch is AWESOME","nick": "@clintongormley","name": "Clinton Gormley","date": "2013-06-03","rt": 5,"loc": {! "lat": 13.4,! "lon": 52.5}}
  • 49. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited! atomic DELETE & PUT
  • 50. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"_index": "myapp","_type": "tweet","_id": "1","_version": 2,"ok": true}# 200 OK
  • 51. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedDelete
  • 52. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedDELETE /myapp/tweet/1
  • 53. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"_index": "myapp","_type": "tweet","_id": "1","_version": 3,"ok": true,"found": true}# 200 OK
  • 54. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedOptimisticconcurrency control
  • 55. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedOptimisticconcurrency controlwithout locking
  • 56. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/1?version=3 -d {...}# 200 OK
  • 57. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp/tweet/1?version=2 -d {...}# 409 Conflict
  • 58. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedUpdate in place
  • 59. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPOST /myapp/tweet/1/_update -d {"script": "ctx._source.count+=1","retry_on_conflict": 3}
  • 60. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPOST /myapp/tweet/1/_update -d {"script": "ctx._source.count+=1","retry_on_conflict": 3}GET ! change ! PUT
  • 61. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCheaper in bulk
  • 62. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedAnydatastoreElasticsearchClientMirror external DB
  • 63. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedAnydatastoreElasticsearchClientStandalone
  • 64. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited"Empty" Search
  • 65. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search
  • 66. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search{"took" : 2,}
  • 67. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search{"took" : 2,"timed_out" : false,}
  • 68. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search{"took" : 2,"timed_out" : false,"_shards" : {"total" : 10,"successful" : 10,"failed" : 0},}
  • 69. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search{"took" : 2,"timed_out" : false,"_shards" : {"total" : 10,"successful" : 10,"failed" : 0},"hits" : {"total" : 14,"max_score" : 1.0,"hits" : [ { ... }]}}
  • 70. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search"hits" : [{"_index" : "de","_type" : "tweet","_id" : "4","_source" : { ... },"_score" : 1.0,},...]
  • 71. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedMulti-indexMulti-type
  • 72. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_search
  • 73. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_searchGET /index1,index2/_search
  • 74. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_searchGET /index1,index2/_searchGET /ind*/_search
  • 75. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_searchGET /index1,index2/_searchGET /ind*/_searchGET /index/type/_search
  • 76. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_searchGET /index1,index2/_searchGET /ind*/_searchGET /index/type/_searchGET /index/type1,type2/_search
  • 77. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_searchGET /index1,index2/_searchGET /ind*/_searchGET /index/type/_searchGET /index/type1,type2/_searchGET /index/type*/_search
  • 78. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /index/_searchGET /index1,index2/_searchGET /ind*/_searchGET /index/type/_searchGET /index/type1,type2/_searchGET /index/type*/_searchGET /_all/type*/_search
  • 79. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPagination
  • 80. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPaginationsize = num of results
  • 81. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPaginationsize = num of resultsfrom = results to skip
  • 82. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?size=5&from=0GET /_search?size=5&from=5GET /_search?size=5&from=10
  • 83. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedSearch Lite
  • 84. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedSearch LiteGET /_search?q=name:john
  • 85. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited+tweet:foo +name:john +date:>2013-05-01
  • 86. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited+tweet:foo +name:john +date:>2013-05-01→ percent encoding →
  • 87. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited+tweet:foo +name:john +date:>2013-05-01?q=%2Btweet%3Afoo+%2Bname%3Ajohn+%2Bdate%3A%3E2013-05-01→ percent encoding →
  • 88. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=mary
  • 89. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited→ user named "Mary"→ tweets by "Mary"→ tweet mentioning "@mary"GET /_search?q=mary
  • 90. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=_all:mary→ user named "Mary"→ tweets by "Mary"→ tweet mentioning "@mary"
  • 91. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited_all fieldstring values fromall other fields
  • 92. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 results
  • 93. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013-06-03! 12 results!!
  • 94. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013-06-03! 12 results!!GET /_search?q=date:2013-06-03! 1 result
  • 95. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013-06-03! 12 results!!GET /_search?q=date:2013-06-03! 1 resultGET /_search?q=date:2013! 0 results!!
  • 96. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibiteddatatype differences?
  • 97. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedcheck "mapping"(field definitions)
  • 98. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /myapp/tweet/_mapping
  • 99. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /myapp/tweet/_mapping{"tweet" : {"properties" : {"tweet" : { "type" : "string" },"name" : { "type" : "string" },"nick" : { "type" : "string" },"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : {"type": "object","properties" : {"lat" : { "type" : "double" },"lon" : { "type" : "double" }}}}}}
  • 100. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibiteddate = type:date_all = type:string
  • 101. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedExact value vs Full text
  • 102. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedExact value vs104.52013-01-01trueFoofooFull text
  • 103. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedExact value vs104.52013-01-01trueFoofooFull textThe quickbrown foxjumpedover thelazy dog
  • 104. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedInverted index“The quick brown fox jumped over the lazy dog”“Quick brown foxes leap over lazy dogs in summer”
  • 105. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedInverted index→ separate words / terms“The quick brown fox jumped over the lazy dog”“Quick brown foxes leap over lazy dogs in summer”
  • 106. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedInverted index→ separate words / termsThe,quick,brown,fox,jumped,over,the,lazy,dogQuick,brown,foxes,leap,over,lazy,dogs,in,summer
  • 107. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedInverted indexThe,quick,brown,fox,jumped,over,the,lazy,dogQuick,brown,foxes,leap,over,lazy,dogs,in,summer→ separate words / terms→ sort unique terms
  • 108. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedInverted index→ separate words / terms→ sort unique termsThe,brown,dog,fox,jumped,lazy,over,quick,theQuick,brown,dogs,foxes,in,lazy,leap,over,summer
  • 109. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedInverted index→ separate words / terms→ sort unique terms→ list docs containing termsThe,brown,dog,fox,jumped,lazy,over,quick,theQuick,brown,dogs,foxes,in,lazy,leap,over,summer
  • 110. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummerthe
  • 111. Term Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedq=quick brown
  • 112. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummerthe
  • 113. Term Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedq=+Quick +foxes
  • 114. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummerthe
  • 115. Term Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedNo matches!
  • 116. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedImproving recall
  • 117. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2QuickThebrowndogdogsfoxfoxesinjumpedlazyleapoverquicksummerthe
  • 118. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogdogsfoxfoxesinjumpedlazyleapoverquicksummerthe
  • 119. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogdogsfoxfoxesinjumpedlazyleapoverquicksummerthe
  • 120. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogfoxinjumpedlazyleapoverquicksummerthe
  • 121. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogfoxinjumpedlazyleapoverquicksummerthe
  • 122. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogfoxinjumpleapoverquicksummerthe
  • 123. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitednormalize terms
  • 124. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogfoxinjumpleapoverquicksummerthe
  • 125. Term Doc 1 Doc 2browndogfoxinjumpleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedq=+Quick +foxes
  • 126. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedTerm Doc 1 Doc 2browndogfoxinjumpleapoverquicksummerthe
  • 127. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitednormalize termsin query too!
  • 128. Term Doc 1 Doc 2browndogfoxinjumpleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedq=+Quick +foxes
  • 129. Term Doc 1 Doc 2browndogfoxinjumpleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedq=+quick +foxes
  • 130. Term Doc 1 Doc 2browndogfoxinjumpleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedq=+quick +fox
  • 131. Term Doc 1 Doc 2browndogfoxinjumpleapoverquicksummertheCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited
  • 132. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited"Analysis"
  • 133. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited"Analysis"tokenization + normalization
  • 134. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited"Analysers"tokenizer + token filters
  • 135. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer"The Quick Brown Fox jumpedover the Lazy Dog!"
  • 136. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer→ standard tokenizer"The Quick Brown Fox jumpedover the Lazy Dog!"
  • 137. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer→ standard tokenizerThe,Quick,Brown,Fox,jumped,over,the,Lazy,Dog
  • 138. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer→ standard tokenizer→ lowercase filterThe,Quick,Brown,Fox,jumped,over,the,Lazy,Dog
  • 139. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer→ standard tokenizer→ lowercase filterthe,quick,brown,fox,jumped,over,the,lazy,dog
  • 140. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer→ standard tokenizer→ lowercase filter→ stopwords filterthe,quick,brown,fox,jumped,over,the,lazy,dog
  • 141. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedstandard analyzer→ standard tokenizer→ lowercase filter→ stopwords filter,quick,brown,fox,jumped,over, ,lazy,dog
  • 142. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedenglish analyzer→ standard tokenizer→ lowercase filterthe,quick,brown,fox,jumped,over,the,lazy,dog
  • 143. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedenglish analyzer→ standard tokenizer→ lowercase filter→ english stemmerthe,quick,brown,fox,jumped,over,the,lazy,dog
  • 144. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedenglish analyzer→ standard tokenizer→ lowercase filter→ english stemmerthe,quick,brown,fox,jumped,over,the,lazy,dog
  • 145. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedenglish analyzer→ standard tokenizer→ lowercase filter→ english stemmerthe,quick,brown,fox,jump,over,the,lazy,dog
  • 146. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedenglish analyzer→ standard tokenizer→ lowercase filter→ english stemmer→ english stopwordsthe,quick,brown,fox,jump,over,the,lazy,dog
  • 147. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedenglish analyzer→ standard tokenizer→ lowercase filter→ english stemmer→ english stopwords,quick,brown,fox,jump,over, ,lazy,dog
  • 148. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibiteddate = type:date_all = type:string
  • 149. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibiteddate = exact value_all = full text
  • 150. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibiteddate = 2013-06-03_all = 2013,06,03
  • 151. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 results
  • 152. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013-06-03! 12 results
  • 153. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013 OR 06 OR 03! 12 results
  • 154. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013-06-03! 12 resultsGET /_search?q=date:2013-06-03! 1 result
  • 155. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search?q=2013! 12 resultsGET /_search?q=2013-06-03! 12 resultsGET /_search?q=date:2013-06-03! 1 resultGET /_search?q=date:2013! 0 results
  • 156. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedField mapping
  • 157. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedStrings: stringDatetimes: dateWhole numbers: byte, short, integer, longFloats: float, doubleBooleans: booleanObjects: objectCore field types
  • 158. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedStrings: stringDatetimes: dateWhole numbers: byte, short, integer, longFloats: float, doubleBooleans: booleanObjects: objectAlso: multi_field, ip, geo_point, geo_shape,Core field types
  • 159. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited"foo bar" string"2013-01-01" date10 byte, short, integer, long10.0 float, doubletrue boolean{ foo: "bar" } objectDynamic detection
  • 160. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited"foo bar" string"2013-01-01" date10 byte, short, integer, long10.0 float, doubletrue boolean{ foo: "bar" } object["foo","bar"] No special mapping. Anyfield can have multi-valsDynamic detection
  • 161. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedMost important: type
  • 162. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet" : {"properties" : {"tweet" : { "type" : "string" },"name" : { "type" : "string" },"nick" : { "type" : "string" },"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : {"type": "object","properties" : {"lat" : { "type" : "double" },"lon" : { "type" : "double" }}}}}}
  • 163. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet" : {"properties" : {"tweet" : { "type" : "string" },"name" : { "type" : "string" },"nick" : { "type" : "string" },"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : { "type" : "geo_point" }}}}
  • 164. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFull text vs Exact string
  • 165. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFull text: (default){ "type": "string", "index": "analyzed" }
  • 166. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFull text: (default){ "type": "string", "index": "analyzed" }Exact string:{ "type": "string", "index": "not_analyzed" }
  • 167. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFull text: (default){ "type": "string", "index": "analyzed" }Exact string:{ "type": "string", "index": "not_analyzed" }Not searchable:{ "type": "string", "index": "no" }
  • 168. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet" : {"properties" : {"tweet" : { "type" : "string" },"name" : { "type" : "string" },"nick" : { "type" : "string" },"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : { "type" : "geo_point" }}}}
  • 169. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet" : {"properties" : {"tweet" : { "type" : "string" },"name" : { "type" : "string" },"nick" : {"type" : "string","index" : "not_analyzed"},"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : { "type" : "geo_point" }}}}
  • 170. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedAnalyzer
  • 171. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet" : {"properties" : {"tweet" : { "type" : "string" },"name" : { "type" : "string" },"nick" : {"type" : "string","index" : "not_analyzed"},"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : { "type" : "geo_point" }}}}
  • 172. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"tweet" : {"properties" : {"tweet" : {"type" : "string","analyzer" : "english"},"name" : { "type" : "string" },"nick" : {"type" : "string","index" : "not_analyzed"},"date" : { "type" : "date" },"rt" : { "type" : "long" },"loc" : { "type" : "geo_point" }}}}
  • 173. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedUpdating mappings
  • 174. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCan: add new fields
  • 175. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCan: add new fieldsPUT /myapp/tweet/_mapping -d {"tweet": {"properties": {...}}}
  • 176. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCannot: change fields
  • 177. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCannot: change fieldsDELETE /myapp
  • 178. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedCannot: change fieldsPUT /myapp -d {"mappings": {"tweet": {"properties": {...}}}}
  • 179. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFull body search
  • 180. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"match_all": {}},"from": 0,"size": 10}
  • 181. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"match_all": {}},"from": 0,"size": 10}
  • 182. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedQuery DSLrich flexible query language
  • 183. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"match": { "tweet": "search" }}
  • 184. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {{"query": {"match": { "tweet": "search" }}}
  • 185. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFilters vs Queries
  • 186. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFilters vsexact matchingQueriesfull text search
  • 187. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFilters vsexact matchingbinary yes/noQueriesfull text searchrelevance scoring
  • 188. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFilters vsexact matchingbinary yes/nofastQueriesfull text searchrelevance scoringheavier
  • 189. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedFilters vsexact matchingbinary yes/nofastcacheableQueriesfull text searchrelevance scoringheaviernot cacheable
  • 190. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedQuery: { "match": { "tweet": "search" }}Filter: { "term": { "nick": "@mary" }}Combine filter & query
  • 191. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"filtered": {"query": {"match": { "tweet": "search" }},"filter": {"term": { "nick": "@mary" }}}}Combine filter & query
  • 192. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"filtered": {"query": {"match": { "tweet": "search" }},"filter": {"term": { "nick": "@mary" }}}}}Combine filter & query
  • 193. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"filtered": {"query": {"match_all": {}},"filter": {"term": { "nick": "@mary" }}}}}Just a filter
  • 194. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"filtered": {"filter": {"term": { "nick": "@mary" }}}}}Just a filter
  • 195. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"filtered": {"filter": {"term": { "nick": "@mary" }}}},"sort": { "date": "desc" }}Users tweets by date
  • 196. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_search -d {"query": {"filtered": {"filter": {"range": {"date": {"gte": "2013-05-01","lt": "2013-06-01"}}}}}}Tweets for last month
  • 197. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_all/tweet/_search -d {"facets": {"top_tweeters": {"terms": {"field": "nick"}}}}Top tweeters
  • 198. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_all/tweet/_search -d {"facets": {"top_tweeters": {"terms": {"field": "nick"}}},"query": {"match": { "tweet": "elasticsearch" }}}Top tweeters for query
  • 199. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedGET /_all/tweet/_search -d {"facets": {"tweets_by_month": {"date_histogram": {"field": "date","interval": "month"}}}}Tweets by month
  • 200. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedAutocomplete{ "match": { "name": "joh" }}"John SmithJohnny DeppLyndon Johnson
  • 201. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedAutocomplete{ "match": { "name": "joh" }}"John SmithJohnny DeppLyndon JohnsonBut "joh" doesnt exist in the index
  • 202. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedN-grams == window-on-a-word:Autocomplete
  • 203. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedN-grams == window-on-a-word:Length 1: j,o,h,n,s,m,i,t,hAutocomplete
  • 204. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedN-grams == window-on-a-word:Length 1: j,o,h,n,s,m,i,t,hLength 2: jo,oh,hn,sm,mi,it,thAutocomplete
  • 205. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedN-grams == window-on-a-word:Length 1: j,o,h,n,s,m,i,t,hLength 2: jo,oh,hn,sm,mi,it,thLength 3: joh,ohn,smi,mit,ithLength 4: john,smit,mithAutocomplete
  • 206. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedN-grams == window-on-a-word:Length 1: j,o,h,n,s,m,i,t,hLength 2: jo,oh,hn,sm,mi,it,thLength 3: joh,ohn,smi,mit,ithLength 4: john,smit,mithAutocompleteGood for partial word matching
  • 207. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedEdge N-grams == anchored N-grams:Autocomplete
  • 208. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedEdge N-grams == anchored N-grams:jjojohjohnssmsmismitsmithAutocomplete
  • 209. Edge N-grams == anchored N-grams:jjojohjohnssmsmismitsmithCopyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedAutocompletePerfect forautocomplete
  • 210. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedEdge N-Gram token filter{"filter": {"autocomplete": {"type": "edge_ngram","min_gram": 1,"max_gram": 20}}}
  • 211. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field analyzers{"analyzer": {"name": {"type": "standard","stopwords": []},}}
  • 212. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field analyzers{"analyzer": {"name": {"type": "standard","stopwords": []},"name_autocomplete": {"type": "custom","tokenizer": "standard","filter": ["lowercase","autocomplete"]}}}
  • 213. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "string"}}
  • 214. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "string"}}multi_field == one field, multi-purposes
  • 215. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "multi_field","fields": {"name": {},"autocomplete": {}}}
  • 216. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "multi_field","fields": {"name": {},"autocomplete": {}}}Main field:"name" or "name.name"
  • 217. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "multi_field","fields": {"name": {"type": "string","analyzer": "name"},"autocomplete": {}}}
  • 218. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "multi_field","fields": {"name": {"type": "string","analyzer": "name"},"autocomplete": {}}}Sub field:"name.autocomplete"
  • 219. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedName field mapping{"name": {"type": "multi_field","fields": {"name": {"type": "string","analyzer": "name"},"autocomplete": {"type": "string","index_analyzer": "name_autocomplete","search_analyzer": "name"}}}
  • 220. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedDELETE /myappRecreate the index
  • 221. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp -d {"settings": {"analysis": {"analyzer": {...},"filter": {...}}},}Recreate the index
  • 222. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedPUT /myapp -d {"settings": {"analysis": {"analyzer": {...},"filter": {...}}},"mappings": {"tweet": {"properties": {...}}}}Recreate the index
  • 223. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"match": {"name.autocomplete": "john smi"}}Autocomplete query
  • 224. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"match": {"name.autocomplete": "john smi"}}Autocomplete queryBetter: favor whole word matches
  • 225. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"bool": {"must": [{...},{...}],"must_not": [{...},{...}],"should": [{...},{...}]}}Autocomplete queryCombines multiple query clauses
  • 226. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"bool": {"must": [{...},{...}],"must_not": [{...},{...}],"should": [{...},{...}]}}Autocomplete queryMUST match
  • 227. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"bool": {"must": [{...},{...}],"must_not": [{...},{...}],"should": [{...},{...}]}}Autocomplete queryMUST NOT match
  • 228. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"bool": {"must": [{...},{...}],"must_not": [{...},{...}],"should": [{...},{...}]}}Autocomplete query"More relevant" if these match
  • 229. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"bool": {"must": {"match": {"name.autocomplete": "john smi"}},"should": {"match": {"name": "john smi"}}Autocomplete query
  • 230. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"custom_score_query": {"query": { "match": { "tweet": "search" }},"script": "_score * (1+log(doc[rt].value))"}}Boost popular tweets
  • 231. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"filtered": {"query": { "match": { "tweet": "search" }},"filter": {"geo_distance": {"distance": "100km","loc": {"lat": 13.4,"lon": 52.5}}}Filter local tweets
  • 232. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"custom_filters_score_query": {"query": { "match": { "tweet": "search" }},"filters": []}}Boost local tweets
  • 233. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibited{"custom_filters_score_query": {"query": { "match": { "tweet": "search" }},"filters": [{"boost": 2,"filter": {"geo_distance": {"distance": "100km","loc": { "lat": 13.4, "lon": 52.5 }}}}]}}Boost local tweets
  • 234. Copyright Elasticsearch 2013. Copying, publishing and/or distributing without written permission is strictly prohibitedwww.elasticsearch.org