<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                ##多詞查詢 如果一次只能查詢一個關鍵詞,全文檢索將會很不方便。幸運的是,用``match``查詢進行多詞查詢也很簡單: GET /my_index/my_type/_search { "query": { "match": { "title": "BROWN DOG!" } } } 上面這個查詢返回以下結果集: { "hits": [ { "_id": "4", "_score": 0.73185337, <1> "_source": { "title": "Brown fox brown dog" } }, { "_id": "2", "_score": 0.47486103, <2> "_source": { "title": "The quick brown fox jumps over the lazy dog" } }, { "_id": "3", "_score": 0.47486103, <2> "_source": { "title": "The quick brown fox jumps over the quick dog" } }, { "_id": "1", "_score": 0.11914785, <3> "_source": { "title": "The quick brown fox" } } ] } <1> 文檔4的相關度最高,因為包含兩個"brown"和一個"dog"。 <2> 文檔2和3都包含一個"brown"和一個"dog",且'title'字段長度相同,所以相關度相等。 <3> 文檔1只包含一個"brown",不包含"dog",所以相關度最低。 因為``match``查詢需要查詢兩個關鍵詞:``"brown"``和``"dog"``,在內部會執行兩個``term``查詢并綜合二者的結果得到最終的結果。``match``的實現方式是將兩個``term``查詢放入一個``bool``查詢,``bool``查詢在之前的章節已經介紹過。 重要的一點是,``'title'``字段包含_至少一個_查詢關鍵字的文檔都被認為是符合查詢條件的。匹配的單詞數越多,文檔的相關度越高。 ### 提高精度 匹配包含任意個數查詢關鍵字的文檔可能會得到一些看似不相關的結果,這是一種霰彈策略(shotgun approach)。然而我們可能想得到包含_所有_查詢關鍵字的文檔。換句話說,我們想得到的是匹配``'brown AND dog'``的文檔,而非``'brown OR dog'``。 ``match``查詢接受一個``'operator'``參數,默認值為``or``。如果要求所有查詢關鍵字都匹配,可以更改參數值為``and``: GET /my_index/my_type/_search { "query": { "match": { "title": { <1> "query": "BROWN DOG!", "operator": "and" } } } } <1> 為了加入``'operator'``參數,``match``查詢的結構有一些不同。 這個查詢會排除文檔1,因為文檔1只包含了一個查詢關鍵詞。 ### 控制精度 在 _all_ 和 _any_ 之間的選擇有點過于非黑即白。如果用戶指定了5個查詢關鍵字,而一個文檔只包含了其中的4個?將``'operator'``設置為``'and'``會排除這個文檔。 有時這的確是用戶想要的結果。但在大多數全文檢索的使用場景下,用戶想得到相關的文檔,排除那些不太可能相關的文檔。換句話說,我們需要介于二者之間的選項。 ``match``查詢有``'minimum_should_match'``參數,參數值表示被視為_相關_的文檔必須匹配的關鍵詞個數。參數值可以設為整數,也可以設置為百分數。因為不能提前確定用戶輸入的查詢關鍵詞個數,使用百分數也很合理。 GET /my_index/my_type/_search { "query": { "match": { "title": { "query": "quick brown dog", "minimum_should_match": "75%" } } } } 當``'minimum_should_match'``被設置為百分數時,查詢進行如下:在上面的例子里,``'75%'``會被下舍為``'66.6%'``,也就是2個關鍵詞。不論參數值為多少,進入結果集的文檔至少應匹配一個關鍵詞。 ####[提示] ``'minimum_should_match'``參數很靈活,根據用戶輸入的關鍵詞個數,可以采用不同的匹配規則。更詳細的內容可以查看[文檔](http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-minimum-should-match.html#query-dsl-minimum-should-match)。 要全面理解``match``查詢是怎樣處理多詞查詢,我們需要了解怎樣用``bool``查詢合并多個查詢。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看