日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elasticsearch实战三部曲之三:搜索操作

發布時間:2025/3/21 编程问答 74 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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實戰三部曲之二:文檔操作》;
  • 《elasticsearch實戰三部曲之三:搜索操作》;
  • 環境信息

  • 本次實戰用到的elasticsearch版本是6.5.4,安裝在Ubuntu 16.04.5 LTS,客戶端工具是postman6.6.1;
  • 如果您需要搭建elasticsearch環境,請參考《Linux環境快速搭建elasticsearch6.5.4集群和Head插件》;
  • 基本情況介紹

    本次實戰的elasticsearch環境以及搭建完畢,是由兩個機器搭建的集群,并且elasticsearch-head也搭建完成:

  • 一號機器,IP地址:192.168.119.152;
  • 二號機器:IP地址:192.168.119.153;
  • elasticsearch-head安裝在一號機器,訪問地址:http://192.168.119.152:9100
  • 已經建立了索引englishbooks,對應的數據如下所示,請用批量命令導入到elasticsearch:
  • <span style="color:#000000"><code class="language-json"><span style="color:#999999">{</span><span style="color:#669900">"index"</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:#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.00</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:#669900">"index"</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:#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.50</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:#669900">"index"</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:#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.90</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">"index"</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:#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.10</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">"index"</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">"5"</span> <span style="color:#999999">}</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">"5"</span><span style="color:#999999">,</span><span style="color:#669900">"title"</span><span style="color:#999999">:</span><span style="color:#669900">"The Go Programming Language"</span><span style="color:#999999">,</span><span style="color:#669900">"language"</span><span style="color:#999999">:</span><span style="color:#669900">"go"</span><span style="color:#999999">,</span><span style="color:#669900">"author"</span><span style="color:#999999">:</span><span style="color:#669900">"Alan A.A.Donovan"</span><span style="color:#999999">,</span><span style="color:#669900">"price"</span><span style="color:#999999">:</span><span style="color:#98c379">63.90</span><span style="color:#999999">,</span><span style="color:#669900">"publish_time"</span><span style="color:#999999">:</span><span style="color:#669900">"2016-01-01"</span><span style="color:#999999">,</span><span style="color:#669900">"description"</span><span style="color:#999999">:</span><span style="color:#669900">"A declaration's lexical block determines its scope, which may be large or small. The declarations of built—in types, functions, and constants like int, len, and true are in the universe block and can be referred to throughout the entire program."</span><span style="color:#999999">}</span></code></span>
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
  • 相關的文檔是批量導入的,關于文檔數據和批量操作的細節請參考《elasticsearch實戰三部曲之二:文檔操作》;
  • books索引的文檔內容在head中展示如下圖:
  • 數據格式說明

    為了便于和讀者溝通,我們來約定一下如何在文章中表達請求和響應的信息:

  • 假設通過Postman工具向服務器發送一個PUT類型的請求,地址是:http://192.168.119.152:9200/test001/article/1
  • 請求的內容是JSON格式的,內容如下:
  • <span style="color:#000000"><code class="language-shell"><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

    對于上面的請求,我在文章中就以如下格式描述:

    <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)

  • term 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">"term"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"core 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

    上述查詢沒有結果的原因,是因為"core java"被當做一個詞項去查詢了,而title的分詞結果中只有"core"、"java"這些分詞過的詞項,并沒有一個叫做"core java"的詞項,所以搜不到結果;

  • 如果輸入的查詢條件"core java"也被做一次分詞處理,再把處理結果"core"和"java"用來搜索,應該就能得到結果了,match 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">"match"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span><span style="color:#c678dd">:</span><span style="color:#669900">"Core 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

    搜索結果如下,包含了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
  • 如果我們的本意是只要"Core Java"的匹配結果,上面的結果顯然是不符合要求的,此時可以給查詢條件加個"operator":"and"屬性,就會查詢匹配了所有關鍵詞的文檔,注意json的結構略有變化,以前title的屬性是搜索條件,現在變成了一個json對象,里面的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">"match"</span>:<span style="color:#999999">{</span><span style="color:#669900">"title"</span>:<span style="color:#999999">{</span><span style="color:#669900">"query"</span><span style="color:#c678dd">:</span><span style="color:#669900">"Core Java"</span>,<span style="color:#669900">"operator"</span><span style="color:#c678dd">:</span><span style="color:#669900">"and"</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

    這次的搜索結果就是同時匹配了"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搜索相似,并且有以下兩個特點:

  • 分詞后的所有詞項都要匹配上,也就是前面的"operator":"and"屬性的效果;
  • 分析后的詞項順序要和搜索字段的順序一致,才能匹配上;
  • <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 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

    上述查詢可以搜索到結果,但如果將"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实战三部曲之三:搜索操作的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    亚洲乱亚洲乱亚洲 | 97av在线| 成年人视频在线免费 | 丁香网婷婷| 日韩精品中文字幕在线播放 | 欧美巨大| 婷婷丁香综合 | 亚洲va天堂va欧美ⅴa在线 | 色综合中文字幕 | 欧美成人91 | 国产男女无遮挡猛进猛出在线观看 | 天天干天天做 | 2021国产精品| av在线短片| 色资源中文字幕 | 黄在线 | 成人久久久久久久久久 | 96国产精品 | 在线国产日本 | 成人啪啪18免费游戏链接 | 日韩视频在线观看视频 | 日韩中字在线观看 | 中日韩免费视频 | 亚洲少妇自拍 | 国产精品亚洲精品 | 国产精品区二区三区日本 | 婷婷在线不卡 | a电影在线观看 | 国产亚洲成av人片在线观看桃 | 十八岁以下禁止观看的1000个网站 | 中文字幕日韩精品有码视频 | 中文字幕一区二区在线观看 | 久久色中文字幕 | 在线观看aaa | 日韩专区一区二区 | 日韩欧美专区 | 992tv在线| 日韩在线视频一区二区三区 | 欧美黄网站 | av再线观看 | 中文一二区 | 在线成人免费电影 | 中文字幕一区二区三区乱码在线 | 久久一本综合 | 亚洲精品麻豆视频 | 婷婷99 | 成人永久免费 | 99热在线国产精品 | 91精品国产九九九久久久亚洲 | 天天操,夜夜操 | 国产精品久久久久久久久久久久久 | 亚洲国产手机在线 | 一区二区三区四区不卡 | 正在播放国产精品 | 免费av试看 | 夜夜操天天干 | 久久色亚洲 | 91视频91色| 色99之美女主播在线视频 | 激情伊人五月天 | 9色在线视频 | 国模一二三区 | 91最新视频在线观看 | 久久激情视频 久久 | 久久精品国产一区二区电影 | 亚洲国产资源 | 成人av免费在线播放 | 日韩一级成人av | 午夜精品久久久久久久久久 | 免费三级网 | 中文字幕在线播放视频 | 激情综合婷婷 | 国产精品久久片 | 国产一区二区三区免费在线观看 | 欧美乱码精品一区 | 欧美 日韩 性 | 91精品欧美一区二区三区 | 狠狠干网址 | 日韩成人免费在线电影 | 欧美国产视频在线 | 免费在线播放视频 | 天天操夜夜拍 | 色香com.| 精品国产自在精品国产精野外直播 | 91精品国自产在线偷拍蜜桃 | 亚洲一区二区视频在线播放 | 天天草天天插 | 亚洲精品久久久久久国 | 又湿又紧又大又爽a视频国产 | 不卡的一区二区三区 | 日韩激情视频 | 国产精品精品国产婷婷这里av | 92国产精品久久久久首页 | 亚洲专区 国产精品 | 香蕉视频国产在线观看 | 狠狠色狠狠色综合日日92 | 亚洲va韩国va欧美va精四季 | 国产尤物一区二区三区 | 9797在线看片亚洲精品 | 国产午夜精品一区二区三区 | 免费a v观看 | www麻豆视频 | 亚洲精品一区二区三区在线观看 | 国产 在线观看 | 五月婷婷激情五月 | 成人午夜毛片 | 三级a毛片| 国产精品 国内视频 | 99精品免费久久久久久日本 | 免费黄色一区 | 五月天激情视频 | 国产高清一区二区 | 在线观看蜜桃视频 | 免费观看视频黄 | 国产午夜三级一区二区三桃花影视 | 黄色片亚洲 | 婷婷视频在线 | 激情视频免费在线观看 | 欧美激情视频一二三区 | 九九激情视频 | 国产成人精品一区二区三区 | 国产日韩欧美在线影视 | 9在线观看免费高清完整版 玖玖爱免费视频 | 又大又硬又黄又爽视频在线观看 | 天天干天天操av | 色久av| www免费黄色 | 日本中文乱码卡一卡二新区 | 91社区国产高清 | 国产精品久久一区二区三区, | 国产美女视频黄a视频免费 久久综合九色欧美综合狠狠 | 高潮久久久久久久久 | 国产免费久久久久 | 国产精品婷婷午夜在线观看 | 久久天天操 | 欧美日韩国产亚洲乱码字幕 | 日韩中字在线观看 | 午夜 久久 tv | 97成人精品视频在线观看 | 国产视频不卡 | 99久久久久久久久久 | 91九色porny在线 | 男女视频国产 | 黄色av成人在线 | 操高跟美女 | 四虎影视8848aamm | 成年人在线观看视频免费 | 天天操天天曰 | 在线免费视频一区 | 免费久草视频 | 中文字幕在线看视频国产中文版 | 日韩欧美在线观看一区二区 | 国产精品爽爽爽 | 日韩视频一区二区 | 成年人app网址 | 在线色视频小说 | 久久久久国产精品视频 | 欧美日韩免费观看一区二区三区 | 色五月情| 久久综合久久伊人 | 中文字幕a在线 | 色综合五月 | 黄色h在线观看 | 久久五月天综合 | 亚洲国产精品激情在线观看 | 国产精品不卡在线观看 | 蜜桃视频色 | 人人玩人人添人人澡超碰 | 激情欧美丁香 | 黄色免费网战 | 国产精品福利午夜在线观看 | 国产一级片久久 | 国产精品 国内视频 | 日本中文字幕电影在线免费观看 | 久久亚洲免费视频 | 日韩精品一区二区不卡 | 国内精品久久久久 | 亚洲va欧洲va国产va不卡 | 国产91在线观看 | 日日成人网 | 999成人免费视频 | 色综合天天综合 | 天天操伊人 | 久久99精品久久久久久三级 | 亚洲精品99久久久久中文字幕 | 日韩经典一区二区三区 | 亚洲精品国产日韩 | 西西www4444大胆视频 | 在线精品国产 | 一区二区视 | 国产在线免费 | 制服丝袜在线 | 91成人观看 | 日本性视频 | 久久久国内精品 | 久久国产热 | 99久久夜色精品国产亚洲96 | 91久久久久久久一区二区 | 日韩欧美综合精品 | 成人av高清在线观看 | 麻豆视频在线播放 | 99性视频| 麻豆视屏 | 91av视频网站 | av免费网站在线观看 | 亚洲欧美日韩国产一区二区三区 | 精品久久免费看 | 国产精品嫩草影院99网站 | 久久综合九色欧美综合狠狠 | 亚洲精品视频第一页 | 日韩欧美网址 | 成人精品电影 | 三级黄色大片在线观看 | 在线免费看片 | 国产手机视频在线 | 日韩欧美网址 | 久久香蕉电影网 | 天堂av在线网址 | 久久久久久久久久久福利 | 超碰个人在线 | 久久精品一区二区国产 | 视频91| 欧美精品乱码久久久久久按摩 | 91高清不卡 | 久久精品中文字幕免费mv | 黄色av免费看 | 日韩精品久久久久久久电影竹菊 | 在线视频你懂得 | 最近日本韩国中文字幕 | 国产偷国产偷亚洲清高 | 狂野欧美激情性xxxx | 久久久香蕉视频 | 夜又临在线观看 | 免费观看黄 | 很黄很污的视频网站 | av超碰免费在线 | 久久免费精品视频 | 欧美精品久久99 | 国产va饥渴难耐女保洁员在线观看 | 色av男人的天堂免费在线 | 国产亚洲免费观看 | 国产高清精品在线观看 | 激情六月婷婷久久 | 免费黄色网止 | 视频1区2区 | 中文字幕在 | 丝袜+亚洲+另类+欧美+变态 | 日韩一二三 | 三级av在线| 免费a网| 久草a视频| 天天干中文字幕 | 三日本三级少妇三级99 | 欧美性网站 | 国产视频在线免费观看 | 1区2区3区在线观看 三级动图 | 99成人免费视频 | 亚洲精品国产精品国 | 久久人人爽人人片av | 日韩激情影院 | 国产精品嫩草影院123 | 亚洲国产一区二区精品专区 | 中文字幕欲求不满 | 安徽妇搡bbbb搡bbbb | 久久精品一 | 国产91精品一区二区麻豆亚洲 | 一区二区三区在线播放 | 日韩欧美高清在线观看 | 精品99久久久久久 | 激情视频综合网 | 日韩激情免费视频 | 西西大胆啪啪 | 中文免费 | 国语黄色片 | 成年人视频在线 | 久久国产精品99久久久久久丝袜 | 日韩电影在线观看一区二区三区 | 高清免费在线视频 | 人人插人人射 | 欧美一区二区在线看 | 久久96国产精品久久99软件 | 视频在线在亚洲 | 91手机视频| 成人v| 91天堂在线观看 | 久久久99精品免费观看app | 国产精品免费视频一区二区 | 最新av网站在线观看 | 日韩精品一区二区三区丰满 | 怡红院av | 日韩欧美一区二区三区在线观看 | 国外成人在线视频网站 | a在线播放| 91粉色视频| 999久久 | 激情综合网五月婷婷 | 国产亚洲成人网 | 国产精品日韩在线 | 欧美激情综合五月色丁香 | 黄色片毛片 | 97视频在线观看视频免费视频 | 免费在线观看污 | 国产精品久久久久久69 | 久久视影 | 亚州日韩中文字幕 | 亚洲精品久久久久中文字幕二区 | 亚洲撸撸 | 国产精品久久久影视 | 黄色av高清| 精品亚洲免费 | 少妇啪啪av入口 | 少妇bbw撒尿 | 五月天久久 | 色 免费观看 | 亚洲人成人天堂h久久 | 国产色网| 性色av免费看 | 九九免费精品 | 一级理论片在线观看 | 日日碰狠狠添天天爽超碰97久久 | 婷婷久月| 99久久精品久久亚洲精品 | 久久草网站 | 欧美久久久久久久久久久久 | 狠狠色狠狠色合久久伊人 | 国产精品入口传媒 | 视频在线91| 亚洲国产精品激情在线观看 | 久久精品99国产 | 国产一区二区在线免费观看 | 色综合欧洲 | 骄小bbw搡bbbb揉bbbb | 一级全黄毛片 | 婷婷丁香激情网 | 中文日韩在线 | 国产精品高潮呻吟久久av无 | 很污的网站 | 欧美日韩在线免费观看 | 成人观看视频 | 日韩精品视频网站 | 激情欧美一区二区三区免费看 | 狠狠操影视 | 久久精品中文字幕一区二区三区 | 91精品亚洲影视在线观看 | av福利网址导航 | 91在线影院 | 欧美一区免费观看 | 91在线91 | 国产香蕉久久精品综合网 | 国产视频美女 | 亚洲精品综合在线 | 久久久国产网站 | 又黄又色又爽 | 日韩高清在线一区二区三区 | 天天艹 | 天天干天天想 | 亚洲 欧洲 国产 精品 | 91麻豆精品国产午夜天堂 | 成人黄色片免费 | 五月天丁香视频 | 国产小视频免费在线观看 | 91最新网址在线观看 | 国产中文字幕精品 | 美女视频免费精品 | av韩国在线| 97成人资源站 | 国产露脸91国语对白 | 2019中文最近的2019中文在线 | 免费看成年人 | 国产午夜三级一区二区三桃花影视 | 久久久久久久久久电影 | 久草在线视频新 | 日韩在线免费电影 | 日韩免费观看视频 | 亚洲精品资源在线 | 黄色三级网站 | 久久免费的视频 | 99视频在线精品国自产拍免费观看 | 91九色丨porny丨丰满6 | 99国产精品一区二区 | 欧美一区二视频在线免费观看 | 天天操夜操 | 中文字幕 欧美性 | 在线a人v观看视频 | 欧美日韩性生活 | 午夜婷婷网 | 日韩电影久久久 | 欧美日韩久久 | 六月激情久久 | 久久精品99国产 | 久久在线精品视频 | 99免费精品 | 国产在线精品一区二区 | 亚洲日本激情 | 久久久久综合网 | 99久久夜色精品国产亚洲96 | 色婷婷免费| 国产精品久久久久永久免费观看 | 91新人在线观看 | 久久精品国产久精国产 | 成年人国产精品 | 国产探花视频在线播放 | 日本公妇在线观看 | 2021久久| 国产不卡网站 | 国产免费精彩视频 | 99国内精品| 精品久久影院 | 99精品视频精品精品视频 | 日本在线观看黄色 | 国产成人一区二区三区 | 99久热精品| 精品自拍网 | 国产精品久久久久久麻豆一区 | 精品国产乱码久久久久久浪潮 | 成人小视频免费在线观看 | 婷婷激情av | 久久久久国产一区二区三区 | av一级网站 | 国产精品久久 | 亚洲在线网址 | av短片在线观看 | 久久99亚洲网美利坚合众国 | 欧美日韩国产精品一区二区三区 | 国产99久久九九精品免费 | 日日爽天天爽 | 九九九热精品免费视频观看网站 | 成年人在线免费看片 | 黄色aaa级片 | 欧美a免费 | 国产一级片不卡 | av中文天堂在线 | 日韩1级片 | 超碰日韩| 视频一区二区精品 | ,久久福利影视 | 99久久夜色精品国产亚洲 | 日韩视频在线观看视频 | 九九热av| 激情视频91| 成人一级在线 | 国产又粗又猛又黄又爽的视频 | 少妇av片 | 91污在线观看 | 国产视频一区在线免费观看 | 99久久国产免费,99久久国产免费大片 | 天天曰| 青草视频在线播放 | 久久精精品视频 | 天天干夜夜爽 | 精品日韩在线一区 | 丝袜美腿在线 | 久久久久黄色 | 亚洲精品国产综合99久久夜夜嗨 | 97天天干 | 国产乱老熟视频网88av | 91av片| 国产中文字幕在线播放 | 久久久久免费精品国产小说色大师 | 国产精品99久久免费黑人 | www..com毛片| 亚洲九九九在线观看 | 日韩有码网站 | 人人干狠狠操 | 人人干网| 丰满少妇对白在线偷拍 | av夜夜操| 18网站在线观看 | 精品久久网| 96av视频 | 国产99久久久国产精品免费看 | 亚洲性xxxx| 亚洲免费在线看 | 日韩久久久久久久久久 | 国产在线p| 四虎影视成人永久免费观看亚洲欧美 | 久久九九精品久久 | 激情狠狠干 | 亚洲精品高清一区二区三区四区 | 日本午夜在线亚洲.国产 | 天天射天天射天天射 | av网址aaa| 又色又爽又激情的59视频 | av高清一区 | 色综合久久久久久中文网 | 狠狠狠狠狠狠狠干 | 亚洲高清视频在线播放 | 久久综合影音 | 欧美成人中文字幕 | 色婷婷狠狠五月综合天色拍 | 99精品系列| 国产一区在线视频播放 | 香蕉网在线播放 | 91福利在线导航 | 手机成人在线电影 | 日韩狠狠操 | 久久久蜜桃一区二区 | av中文字幕网址 | 国产精品观看在线亚洲人成网 | 婷婷去俺也去六月色 | 91香蕉久久| 成人免费看视频 | 国产精品婷婷午夜在线观看 | 美女黄频在线观看 | 国产对白av | 色噜噜狠狠色综合中国 | 一区二区三区 亚洲 | 99日精品| 日本激情视频中文字幕 | 天天摸日日操 | 精品国产一区二区三区四区在线观看 | 黄污视频网站 | 亚洲精品国偷自产在线99热 | 免费在线观看一区 | 亚洲色五月 | 久久视频6| 免费在线国产 | 欧美一区二区三区激情视频 | av电影亚洲| 国产成人一区二区三区久久精品 | 欧美性生活一级片 | 国产精品综合在线 | 亚洲精品在线视频播放 | 欧美a级在线 | 久久综合婷婷国产二区高清 | 美女网站黄在线观看 | 正在播放日韩 | 国产免费国产 | 一区在线电影 | 欧美成人h版在线观看 | 亚洲天堂网在线视频观看 | 久久精品高清 | 久久国产精品99久久人人澡 | 婷婷激情综合五月天 | 亚洲激情在线观看 | 国产精品av免费观看 | 亚州精品在线视频 | 国产大陆亚洲精品国产 | 欧美色综合久久 | 婷久久| 日韩经典一区二区三区 | 久久手机视频 | 鲁一鲁影院 | 久久最新 | 色94色欧美 | 嫩模bbw搡bbbb搡bbbb | 精品国产理论片 | 在线观看av小说 | 欧美91精品久久久久国产性生爱 | 91看片淫黄大片91 | 国产91国语对白在线 | 中文字幕欧美日韩va免费视频 | 亚洲精品电影在线 | 天天艹 | 麻豆一区在线观看 | 日韩一区二区免费在线观看 | 在线视频 区 | 国产在线视频一区 | 国产精品色婷婷视频 | 在线免费观看黄色 | 亚洲精品中文字幕在线观看 | 欧美成人xxx| 久久这里只有精品1 | 欧美日韩精品电影 | 国产色拍 | 日韩成人av在线 | 激情视频综合网 | 69精品视频 | 久久免费观看少妇a级毛片 久久久久成人免费 | 182午夜在线观看 | av一级网站 | 九草在线观看 | 99在线看| 日韩在线资源 | 在线观看午夜 | 四虎国产精品免费观看视频优播 | 国产一级片免费视频 | 亚洲另类交 | 日韩高清精品一区二区 | 国产丝袜制服在线 | 日韩精品一区二区三区在线播放 | 久久久网| www.天天成人国产电影 | 国产一级黄大片 | 亚洲视频99 | 日韩中文字幕国产精品 | 一区二区三区精品久久久 | 精品国产乱码久久久久久浪潮 | 免费黄色av. | 在线观看成人一级片 | 日韩精品一区二区三区视频播放 | 九九久久影院 | 国产 中文 日韩 欧美 | 欧美成人精品三级在线观看播放 | 国产一区国产二区在线观看 | 国产精品毛片网 | 天天草av | 国产精品自拍在线 | 天天色草 | 欧美性做爰猛烈叫床潮 | 在线观看视频你懂 | 国产精品 亚洲精品 | 精品96久久久久久中文字幕无 | 深夜免费小视频 | 久免费视频 | av官网| 国产一区二区在线观看免费 | 黄色精品一区 | 午夜美女wwww | 人成在线免费视频 | 最新av网址在线观看 | 射射射av| 国产1区在线观看 | 五月天色站 | 国内精品毛片 | 最近中文字幕国语免费高清6 | av线上看| 亚洲一区视频免费观看 | 欧美了一区在线观看 | 在线观看你懂的网址 | 国产黄色观看 | 欧美日韩视频一区二区 | 色婷婷av国产精品 | 国产精品免费不卡 | 2019中文最近的2019中文在线 | 久久怡红院 | 亚洲综合色视频 | 在线观看国产区 | 4hu视频| 国产精品手机播放 | 日本高清dvd | 91在线精品视频 | 亚洲人成在线电影 | 91亚瑟视频 | 五月婷婷欧美视频 | 国产精品一区二区三区四区在线观看 | 国产在线永久 | 九九热视频在线 | 天天爽天天摸 | 日韩va欧美va亚洲va久久 | 超碰999| 亚洲aaa级| 玖玖精品视频 | 色综合天天色 | 丰满少妇在线观看网站 | 欧美久久久久 | 在线观看一级 | 国产精品二区在线观看 | sm免费xx网站| 亚洲女在线 | 国产精品普通话 | av免费观看网址 | 久久综合干 | 青青河边草免费直播 | 国产精品久久久久久久久久免费 | 日本一区二区三区视频在线播放 | 一区二区三区精品在线视频 | 国产在线播放一区二区 | 久久手机视频 | 国产高清久久久 | av三区在线| 888av| 天天天在线综合网 | 国模一区二区三区四区 | 国产精在线| 亚洲精品中文字幕在线观看 | 黄色免费电影网站 | 高清日韩一区二区 | 欧美国产日韩一区二区 | 99欧美精品 | av成人免费 | 亚洲国产视频在线 | 三级黄色免费 | 婷婷综合av | 九色自拍视频 | 六月激情网 | 999免费视频 | 亚洲视频在线免费观看 | 少妇性bbb搡bbb爽爽爽欧美 | 亚洲在线网址 | av电影 一区二区 | 免费观看一级视频 | 中文字幕色婷婷在线视频 | 黄色小说视频在线 | 又黄又刺激又爽的视频 | 久久亚洲区 | 91福利视频网站 | av看片网 | 欧美精品中文字幕亚洲专区 | 国产精品久久久久久久久久99 | 国产美女永久免费 | 国产精品9999久久久久仙踪林 | 成人av资源 | 久久久综合九色合综国产精品 | 日韩精品免费在线视频 | 精品一区中文字幕 | 成人av午夜| 看片网站黄色 | 免费观看成年人视频 | 啪啪免费视频网站 | av一级免费| 97国产精品 | 在线国产小视频 | 波多野结衣日韩 | 欧美激情视频一区 | 中文字幕在线观看亚洲 | 综合久久久久久久 | 久久久久免费视频 | a在线v| 国产精品美女www爽爽爽视频 | 高清国产在线一区 | 日本在线观看中文字幕无线观看 | 国产精品大全 | 日韩在线三级 | 美女很黄免费网站 | 在线激情网 | 久草在线中文888 | 久久久久伊人 | 热99在线视频 | 免费手机黄色网址 | 日本三级在线观看中文字 | 亚洲不卡av一区二区三区 | 美女很黄免费网站 | 一本一道久久a久久精品蜜桃 | 午夜手机看片 | 婷婷av电影| 色黄久久久久久 | 黄色在线免费观看网址 | 夜夜操夜夜干 | 色七七亚洲影院 | 成年人电影免费看 | 国产日韩欧美在线播放 | 国产精品一级视频 | 在线观看网站你懂的 | 五月婷香蕉久色在线看 | 日韩电影一区二区三区在线观看 | 日韩午夜精品福利 | 免费看的黄网站软件 | 精品福利视频在线 | 蜜桃av综合网 | 97干com| 五月天伊人| 99精品免费久久久久久久久 | 天天操天天综合网 | 亚洲视频电影在线 | 精品国产乱码 | 97人人模人人爽人人喊网 | 天天干天天摸 | 久久免费视频1 | 91精品啪在线观看国产线免费 | 亚洲日韩精品欧美一区二区 | 久草com| 夜夜干天天操 | 国产精品欧美在线 | 91热爆视频| 九九热精品视频在线播放 | 久久精品视频观看 | 九九久久影视 | 国产精品久久久久aaaa九色 | 精品国产三级 | 麻豆成人精品 | 成人小视频在线观看免费 | 97国产情侣爱久久免费观看 | 青草视频在线看 | 日韩精品aaa| 夜夜骑天天操 | 麻豆视频免费入口 | 色久网| 久久蜜桃av | 91精品在线观看视频 | 毛片www | 午夜 在线| 青春草免费视频 | av电影免费观看 | 国产999精品久久久久久麻豆 | 亚洲综合激情 | 免费视频久久久 | 91精品视频导航 | 国产成人精品在线 | 亚洲成av人片在线观看无 | 精品久久一区二区三区 | 国产精品日韩欧美一区二区 | 一区二区三区在线免费播放 | 日韩欧美黄色网址 | 国产一区二区播放 | 日本亚洲国产 | 国产一区自拍视频 | 久久草草热国产精品直播 | 91成人网在线播放 | 手机成人av在线 | 国产成人在线一区 | 久久久.com| 亚洲天天干 | 人人澡人人爽 | 久久亚洲婷婷 | 美女免费视频一区二区 | 免费的黄色av | 成人天堂网 | 91看片淫黄大片一级在线观看 | 国产综合小视频 | 最近中文字幕免费视频 | 97小视频 | 国产69精品久久久久久久久久 | 免费在线国产精品 | av电影亚洲 | 久草免费在线视频观看 | 亚洲九九九在线观看 | 天天色天天色天天色 | 人人射人人射 | 日韩激情在线 | 毛片久久久| 亚洲日韩中文字幕 | 国内亚洲精品 | 国产成人一区二区三区影院在线 | 在线视频你懂 | 亚洲三级网站 | 国产精品国产三级在线专区 | 亚洲 欧洲 国产 日本 综合 | 天天激情综合 | 一区二区三区播放 | 免费久久久| 超碰公开在线观看 | 午夜精品av| 97精品国自产拍在线观看 | va视频在线观看 | 五月婷激情 | 日韩精品一区二区电影 | 激情综合网色播五月 | 久久精品欧美日韩精品 | 少妇性aaaaaaaaa视频 | www99精品 | 国产精品网站一区二区三区 | 亚洲综合欧美精品电影 | 91av网址| 日韩精品一区二区三区在线播放 | 992tv在线 | 中文字幕网站 | 久久精品9 | 国产精品久久久久影院 | zzijzzij日本成熟少妇 | 久久免费电影网 | 亚洲首页 | 人人射 | 91爱爱电影| 日免费视频 | 欧美日本中文字幕 | 国产又粗又猛又爽 | 亚洲最新合集 | 黄视频网站大全 | 在线播放国产一区二区三区 | 五月天婷婷狠狠 | 97在线公开视频 | 欧美一二三区在线观看 | 18国产精品白浆在线观看免费 | 天天爱天天操天天爽 | 岛国av在线 | 免费看片亚洲 | 91麻豆免费视频 | 精品国产成人av | 中文在线a√在线 | 美女视频a美女大全免费下载蜜臀 | 欧美国产日韩久久 | 国产91aaa | 奇米影视8888在线观看大全免费 | 国产在线精品国自产拍影院 | 亚洲最新视频在线播放 | 99情趣网视频 | 日韩一级精品 | 国产美女精品视频 | 午夜美女av | 黄色三级在线看 | 波多野结衣综合网 | 精品国内自产拍在线观看视频 | av亚洲产国偷v产偷v自拍小说 | 国产美女免费 | 最近中文字幕大全 | 亚洲春色综合另类校园电影 | 中文字幕在线观看一区 | 久草在线视频首页 | 九九电影在线 | 久久久999 | 黄色免费国产 | 精品中文字幕在线播放 | 欧美一级小视频 | 最近免费观看的电影完整版 | 日韩视频免费观看高清完整版在线 | 日韩久久久久久 | 久久久久成人免费 | 91视频 - v11av| 欧美韩日在线 | 精品视频专区 | 免费在线观看a v | 国产亚洲精品久久久久久 | 国产小视频国产精品 | 天天综合成人 | 美女精品国产 | 午夜精品福利影院 | 欧美日韩a视频 | 免费国产亚洲视频 | 五月婷影院 | 久久av伊人 | 视频在线观看日韩 | 色婷婷综合视频在线观看 | 日韩91精品 | 超碰97国产精品人人cao | 成人毛片久久 | 国产视频中文字幕 | 亚洲国产97在线精品一区 | 国产99久久九九精品 | 久久免费公开视频 | 在线观看www视频 | 特黄色大片 | 五月激情丁香图片 | 久久香蕉国产精品麻豆粉嫩av | 国产91精品看黄网站 | 在线观看韩国av | 日韩特黄一级欧美毛片特黄 | 亚洲精品av在线 | 日韩欧美精品在线 | 国产精品理论片在线播放 | 日本爱爱免费 | 在线视频电影 | 色婷婷综合成人av | 天天干 天天摸 天天操 | 精品国产电影一区 | 中文字幕av播放 | 久草在线在线精品观看 | 久久一区二区三区国产精品 | 97碰碰视频| 亚洲五月六月 | 97视频入口免费观看 | 天天干,夜夜操 | 精品极品在线 | 毛片一级免费一级 | 成人小视频在线 | 日韩久久激情 | 日韩av电影中文字幕在线观看 | 亚洲1级片 | 中文字幕五区 | 日韩高清av在线 | 国产精品18久久久久久久网站 | 91视频久久久 | 人人看黄色 | 特级黄色片免费看 | 精品99久久久久久 | 97热视频| 欧美午夜a| 在线国产片| 成年人在线看片 | 日韩成人免费观看 | 精品一区二区免费 | av网站免费线看精品 | 91资源在线播放 | 日韩二区三区 | 在线黄色免费 | 色播五月激情五月 | 成人av影视在线 | 一级黄色片毛片 | 高清中文字幕av | 在线观看mv的中文字幕网站 | 男女免费视频观看 | 亚洲日本va午夜在线影院 | 精品女同一区二区三区在线观看 | 精品国产一区二区三区久久 | 国产黑丝一区二区 | 黄色特级一级片 | 亚洲一区二区三区四区精品 | 果冻av在线 | 97人人射| 97精品视频在线播放 | 免费视频资源 | 久久久久夜色 | 一级性视频 | 国产偷国产偷亚洲清高 | 国产黄色免费 | 一区二区三区在线观看中文字幕 | 国产午夜视频在线观看 | 中文字幕文字幕一区二区 | 丁香六月五月婷婷 | 久草视频中文 | 黄色aaa毛片 | 亚洲精品成人av在线 | 色婷婷免费视频 | 久久再线视频 | 精品麻豆入口免费 | 婷婷综合网 | 黄色资源网站 | 美女av电影| 999久久久免费精品国产 | 国产精品一区二区三区在线 | 国产精品一区二区吃奶在线观看 | 超碰在线资源 | 一区二区日韩av | 亚洲激情综合 | 四虎最新入口 | 天天干天天拍天天操天天拍 | www.亚洲视频.com | 久久97精品 |