elasticsearch实战三部曲之三:搜索操作
elasticsearch實戰三部曲之三:搜索操作
2019年01月13日 21:35:18?博陵精騎?閱讀數:1367?標簽:?elasticsearch?更多
個人分類:?elasticsearch
所屬專欄:?elasticsearch之旅
版權聲明:歡迎轉載,請注明出處,謝謝。 https://blog.csdn.net/boling_cavalry/article/details/86413235
本文是《elasticsearch實戰三部曲》的終篇,作為elasticsearch的核心功能,搜索的重要性不言而喻,今天的實戰都會圍繞搜索展開;
系列文章鏈接
環境信息
基本情況介紹
本次實戰的elasticsearch環境以及搭建完畢,是由兩個機器搭建的集群,并且elasticsearch-head也搭建完成:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
數據格式說明
為了便于和讀者溝通,我們來約定一下如何在文章中表達請求和響應的信息:
- 1
- 2
- 3
- 4
- 5
- 6
對于上面的請求,我在文章中就以如下格式描述:
<span style="color:#000000"><code class="language-shell">PUT test001/article/1<span style="color:#999999">{</span>“id”:1,<span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"標題a"</span>,<span style="color:#669900">"posttime"</span><span style="color:#c678dd">:</span><span style="color:#669900">"2019-01-12"</span>,<span style="color:#669900">"content"</span><span style="color:#c678dd">:</span><span style="color:#669900">"一起來熟悉文檔相關的操作"</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
讀者您看到上述內容,就可以在postman中發起PUT請求,地址是"test001/article/1"前面加上您的服務器地址,內容是上面的JSON;
本文中的文檔內容暫不涉及中文
文中數據都是英文的,避免在因分詞器的分詞問題導致搜索不到對應的中文結果,分詞器相關的知識會在另一篇文章中詳細介紹;
查看所有數據
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"match_all"</span>:<span style="color:#999999">{</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
上述查詢返回索引books的所有記錄,并且文檔得分收是1;
您可以將請求的整個JSON刪除,只用books/_search這個URL來試試,也能得到所有數據,這是match_all的簡寫;
數字字段的精確匹配
查詢價格等于549的記錄:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"constant_score"</span>:<span style="color:#999999">{</span><span style="color:#669900">"filter"</span>:<span style="color:#999999">{</span><span style="color:#669900">"term"</span>:<span style="color:#999999">{</span><span style="color:#669900">"price"</span>:549<span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
得到結果:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">4</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Deep Learning"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"python"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Yoshua Bengio"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">549</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-11-18"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"written by three experts in the field, deep learning is the only comprehensive book on the subject."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
請求參數中使用了constant_score 后,查詢將以非評分模式來執行 term,并以一作為統一評分;
查看分詞效果
text類型的字段會被分詞后構建倒排索引,來看看title字段的值為"Core Java"時的分詞效果:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_analyze<span style="color:#999999">{</span><span style="color:#669900">"field"</span><span style="color:#c678dd">:</span><span style="color:#669900">"title"</span>,<span style="color:#669900">"text"</span><span style="color:#c678dd">:</span><span style="color:#669900">"Core Java"</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
響應如下所示,"Core Java"被分"core"和"java"兩個詞,也就是說我們以詞項"core"或"java"搜索title字段都能收到對應文檔:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"tokens"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"token"</span><span style="color:#999999">:</span> <span style="color:#669900">"core"</span><span style="color:#999999">,</span><span style="color:#669900">"start_offset"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"end_offset"</span><span style="color:#999999">:</span> <span style="color:#98c379">4</span><span style="color:#999999">,</span><span style="color:#669900">"type"</span><span style="color:#999999">:</span> <span style="color:#669900">"<ALPHANUM>"</span><span style="color:#999999">,</span><span style="color:#669900">"position"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#999999">{</span><span style="color:#669900">"token"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"start_offset"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"end_offset"</span><span style="color:#999999">:</span> <span style="color:#98c379">9</span><span style="color:#999999">,</span><span style="color:#669900">"type"</span><span style="color:#999999">:</span> <span style="color:#669900">"<ALPHANUM>"</span><span style="color:#999999">,</span><span style="color:#669900">"position"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">}</span><span style="color:#999999">]</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
需要注意的是分詞后的結果都是小寫,這是分詞器的處理結果;
詞項查詢(term query)
前面我們查看分詞效果發現"Core Java"被分"core"和"java"兩個詞,現在就以"java"為關鍵詞搜索一下試試:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"term"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"java"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
結果如下,title中有java關鍵詞的兩個文檔都被搜到:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">4</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">2</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5754429</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5754429</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Bruce Eckel"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">70.1</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2015-07-06"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java should be read cover to cover by every Java programmer, then kept close at hand for frequent reference. The exercises are challenging, and the chapter on Collections is superb!"</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.2876821</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Core Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Horstmann"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">85.9</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-06-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"The book is aimed at experienced programmers who want to learn how to write useful Java applications and applets. "</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
分詞查詢(match query)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
上述查詢沒有結果的原因,是因為"core java"被當做一個詞項去查詢了,而title的分詞結果中只有"core"、"java"這些分詞過的詞項,并沒有一個叫做"core java"的詞項,所以搜不到結果;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
搜索結果如下,包含了java的兩條記錄都被查出來了:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">8</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">2</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5754429</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5754429</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Bruce Eckel"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">70.1</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2015-07-06"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java should be read cover to cover by every Java programmer, then kept close at hand for frequent reference. The exercises are challenging, and the chapter on Collections is superb!"</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5753642</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Core Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Horstmann"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">85.9</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-06-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"The book is aimed at experienced programmers who want to learn how to write useful Java applications and applets. "</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
這次的搜索結果就是同時匹配了"core"和"java"兩個詞項的記錄了(為什么core和java是小寫? 因為"Core Java"被分詞后改為了小寫,再去搜索的):
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">11</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5753642</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5753642</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Core Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Horstmann"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">85.9</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-06-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"The book is aimed at experienced programmers who want to learn how to write useful Java applications and applets. "</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
match_phrase搜索
match_phrase搜索和前面的match搜索相似,并且有以下兩個特點:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
上述查詢可以搜索到結果,但如果將"Core Java"改成"Java Core"就搜不到結果了,但是match query用"Java Core"是可以搜到結果的;
match_phrase_prefix搜索
match_phrase_prefix的功能和前面的match_phrase類似,不過match_phrase_prefix支持最后一個詞項做前綴匹配,如下所示,"Core J"這個搜索條件用match_phrase是搜不到結果的,但是match_phrase_prefix可以,因為"J"可以作為前綴和"Java"匹配:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"match_phrase"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"Core J"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
multi_match搜素
multi_match是在match的基礎上支持多字段搜索,以下查詢就是用"1986"和"deep"這兩個詞項,同時搜索title和description兩個字段:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"multi_match"</span>:<span style="color:#999999">{</span><span style="color:#669900">"query"</span><span style="color:#c678dd">:</span><span style="color:#669900">"1986 deep"</span>,<span style="color:#669900">"fields"</span>:<span style="color:#999999">[</span><span style="color:#669900">"title"</span>, <span style="color:#669900">"description"</span><span style="color:#999999">]</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
響應如下,可見title和description中含有詞項"1986"或者"deep"的文檔都被返回了:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">4</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">2</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.79237825</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"2"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.79237825</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"2"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Compilers"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"c"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Alfred V.Aho"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">62.5</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2011-01-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"In the time since the 1986 edition of this book, the world of compiler designhas changed significantly."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.2876821</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Deep Learning"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"python"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Yoshua Bengio"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">549</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-11-18"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"written by three experts in the field, deep learning is the only comprehensive book on the subject."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
terms query
terms是term查詢的升級,用來查詢多個詞項:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"terms"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span>:<span style="color:#999999">[</span><span style="color:#669900">"deep"</span>, <span style="color:#669900">"core"</span><span style="color:#999999">]</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
響應如下,title中含有deep和core的文檔都被查到:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">2</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Deep Learning"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"python"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Yoshua Bengio"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">549</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-11-18"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"written by three experts in the field, deep learning is the only comprehensive book on the subject."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Core Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Horstmann"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">85.9</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-06-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"The book is aimed at experienced programmers who want to learn how to write useful Java applications and applets. "</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
范圍查詢
range query是范圍查詢,例如查詢publish_time在"2016-01-01"到"2016-12-31"之間的文檔:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"range"</span>:<span style="color:#999999">{</span><span style="color:#669900">"publish_time"</span>:<span style="color:#999999">{</span><span style="color:#669900">"gte"</span><span style="color:#c678dd">:</span><span style="color:#669900">"2016-01-01"</span>,<span style="color:#669900">"lte"</span><span style="color:#c678dd">:</span><span style="color:#669900">"2016-12-31"</span>,<span style="color:#669900">"format"</span><span style="color:#c678dd">:</span><span style="color:#669900">"yyyy-MM-dd"</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
篇幅所限,此處略去返回結果;
exists query
exists query返回的是字段中至少有一個非空值的文檔:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"exists"</span>:<span style="color:#999999">{</span><span style="color:#669900">"field"</span><span style="color:#c678dd">:</span><span style="color:#669900">"author"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
前綴查詢
用于查詢某個字段是否以給定前綴開始:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"prefix"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"cor"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
以上請求可以查到title字段為"Core Java"的文檔:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">6</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Core Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Horstmann"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">85.9</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-06-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"The book is aimed at experienced programmers who want to learn how to write useful Java applications and applets. "</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
通配符查詢
以下查詢,可以搜到title字段中含有"core"的文檔,另外需要注意的是,"?“匹配一個字符,”*"匹配零個或者多個字符:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"wildcard"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"cor?"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
正則表達式
使用屬性regexp可以進行正則表達式查詢,例如查找description字段帶有4位數字的分詞的文檔:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"regexp"</span>:<span style="color:#999999">{</span><span style="color:#669900">"description"</span><span style="color:#c678dd">:</span><span style="color:#669900">"[0-9]{4}"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
查找結果如下,description字段中帶有數字1986:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">4</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"2"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"2"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Compilers"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"c"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Alfred V.Aho"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">62.5</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2011-01-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"In the time since the 1986 edition of this book, the world of compiler designhas changed significantly."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
模糊查詢(fuzzy query)
fuzzy是通過計算詞項與文檔的編輯距離來得到結果的,例如查找description字段還有分詞"1986"的時候,不小心輸入了"1987",通過fuzzy查詢也能得到結果,只是得分變低了,請求內容如下所示:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"fuzzy"</span>:<span style="color:#999999">{</span><span style="color:#669900">"description"</span><span style="color:#c678dd">:</span><span style="color:#669900">"1987"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
搜索到的文檔如下所示,得分只有0.5942837,低于用"1986"查詢的0.79237825:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5942837</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"2"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5942837</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"2"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Compilers"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"c"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Alfred V.Aho"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">62.5</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2011-01-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"In the time since the 1986 edition of this book, the world of compiler designhas changed significantly."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
需要注意的是,fuzzy查詢時消耗資源較大;
復合查詢
常用到的復合查詢是bool query,可以用下表中的條件組合查詢:
| must | 必須匹配,相當于SQL中的AND |
| should | 可以匹配,相當于SQL中的OR |
| must_not | 必須不匹配 |
| filter | 和must一樣,但是不評分 |
以下條件,搜索的是title中帶有java,但是不包含core的文檔:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"bool"</span>:<span style="color:#999999">{</span><span style="color:#669900">"must"</span>:<span style="color:#999999">{</span><span style="color:#669900">"term"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"java"</span><span style="color:#999999">}</span> <span style="color:#999999">}</span>,<span style="color:#669900">"must_not"</span>:<span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"term"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"core"</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
得到的文檔中,帶有core詞項的已經被過濾了:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">3</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5754429</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">0.5754429</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Bruce Eckel"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">70.1</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2015-07-06"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java should be read cover to cover by every Java programmer, then kept close at hand for frequent reference. The exercises are challenging, and the chapter on Collections is superb!"</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
腳本查詢
可用腳本進行查詢,如下是查詢價格大于100的所有文檔:
<span style="color:#000000"><code class="language-shell">GET englishbooks/_search<span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"bool"</span>:<span style="color:#999999">{</span><span style="color:#669900">"must"</span>:<span style="color:#999999">{</span><span style="color:#669900">"script"</span>:<span style="color:#999999">{</span><span style="color:#669900">"script"</span>:<span style="color:#999999">{</span><span style="color:#669900">"inline"</span><span style="color:#c678dd">:</span><span style="color:#669900">"doc['price'].value>500"</span>,<span style="color:#669900">"lang"</span><span style="color:#c678dd">:</span><span style="color:#669900">"painless"</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
得到的結果只有price大于500的文檔:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">8</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#98c379">1</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"1"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Deep Learning"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"python"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Yoshua Bengio"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">549</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-11-18"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"written by three experts in the field, deep learning is the only comprehensive book on the subject."</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
指定排序字段
默認的排序方式是按照評分來排序的(也就是相關度排序),可以用sort屬性來設置排序字段,下面的請求指定了按照price字段降序排序:
<span style="color:#000000"><code class="language-shell"><span style="color:#999999">{</span><span style="color:#669900">"query"</span>:<span style="color:#999999">{</span><span style="color:#669900">"term"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"java"</span><span style="color:#999999">}</span><span style="color:#999999">}</span>,<span style="color:#669900">"sort"</span>:<span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"price"</span>:<span style="color:#999999">{</span><span style="color:#669900">"order"</span><span style="color:#c678dd">:</span><span style="color:#669900">"desc"</span><span style="color:#999999">}</span><span style="color:#999999">}</span><span style="color:#999999">]</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
得到結果:
<span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"took"</span><span style="color:#999999">:</span> <span style="color:#98c379">4</span><span style="color:#999999">,</span><span style="color:#669900">"timed_out"</span><span style="color:#999999">:</span> <span style="color:#56b6c2">false</span><span style="color:#999999">,</span><span style="color:#669900">"_shards"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"successful"</span><span style="color:#999999">:</span> <span style="color:#98c379">5</span><span style="color:#999999">,</span><span style="color:#669900">"skipped"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">,</span><span style="color:#669900">"failed"</span><span style="color:#999999">:</span> <span style="color:#98c379">0</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"total"</span><span style="color:#999999">:</span> <span style="color:#98c379">2</span><span style="color:#999999">,</span><span style="color:#669900">"max_score"</span><span style="color:#999999">:</span> <span style="color:#c678dd">null</span><span style="color:#999999">,</span><span style="color:#669900">"hits"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#c678dd">null</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"3"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Core Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Horstmann"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">85.9</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2016-06-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"The book is aimed at experienced programmers who want to learn how to write useful Java applications and applets. "</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"sort"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#98c379">85.9</span><span style="color:#999999">]</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#999999">{</span><span style="color:#669900">"_index"</span><span style="color:#999999">:</span> <span style="color:#669900">"englishbooks"</span><span style="color:#999999">,</span><span style="color:#669900">"_type"</span><span style="color:#999999">:</span> <span style="color:#669900">"IT"</span><span style="color:#999999">,</span><span style="color:#669900">"_id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"_score"</span><span style="color:#999999">:</span> <span style="color:#c678dd">null</span><span style="color:#999999">,</span><span style="color:#669900">"_source"</span><span style="color:#999999">:</span> <span style="color:#999999">{</span><span style="color:#669900">"id"</span><span style="color:#999999">:</span> <span style="color:#669900">"4"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span> <span style="color:#669900">"java"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span> <span style="color:#669900">"Bruce Eckel"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span> <span style="color:#98c379">70.1</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span> <span style="color:#669900">"2015-07-06"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span> <span style="color:#669900">"Thinking in Java should be read cover to cover by every Java programmer, then kept close at hand for frequent reference. The exercises are challenging, and the chapter on Collections is superb!"</span><span style="color:#999999">}</span><span style="color:#999999">,</span><span style="color:#669900">"sort"</span><span style="color:#999999">:</span> <span style="color:#999999">[</span><span style="color:#98c379">70.1</span><span style="color:#999999">]</span><span style="color:#999999">}</span><span style="color:#999999">]</span><span style="color:#999999">}</span> <span style="color:#999999">}</span> </code></span>- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
以上就是常用的搜索操作了,至此,《elasticsearch實戰三部曲》系列就全部完成,三篇文章列舉的是一些常用的基本操作,希望能幫助讀者您快速熟悉elasticsearch,后面咱們再一起深入實戰;
總結
以上是生活随笔為你收集整理的elasticsearch实战三部曲之三:搜索操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: docker下,一行命令搭建elasti
- 下一篇: tf-idf:信息检索