<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之旅 廣告
                ## 查詢與過濾條件的合并 查詢語句和過濾語句可以放在各自的上下文中。 在 ElasticSearch API 中我們會看到許多帶有 `query` 或 `filter` 的語句。 這些語句既可以包含單條 query 語句,也可以包含一條 filter 子句。 換句話說,這些語句需要首先創建一個`query`或`filter`的上下文關系。 復合查詢語句可以加入其他查詢子句,復合過濾語句也可以加入其他過濾子句。 通常情況下,一條查詢語句需要過濾語句的輔助,全文本搜索除外。 所以說,查詢語句可以包含過濾子句,反之亦然。 以便于我們切換 query 或 filter 的上下文。這就要求我們在讀懂需求的同時構造正確有效的語句。 ## 帶過濾的查詢語句 #### 過濾一條查詢語句 比如說我們有這樣一條查詢語句: ```Javascript { "match": { "email": "business opportunity" } } ``` 然后我們想要讓這條語句加入 `term` 過濾,在收信箱中匹配郵件: ```Javascript { "term": { "folder": "inbox" } } ``` `search` API中只能包含 `query` 語句,所以我們需要用 `filtered` 來同時包含 "query" 和 "filter" 子句: ```Javascript { "filtered": { "query": { "match": { "email": "business opportunity" }}, "filter": { "term": { "folder": "inbox" }} } } ``` 我們在外層再加入 `query` 的上下文關系: ```Javascript GET /_search { "query": { "filtered": { "query": { "match": { "email": "business opportunity" }}, "filter": { "term": { "folder": "inbox" }} } } } ``` ## 單條過濾語句 在 `query` 上下文中,如果你只需要一條過濾語句,比如在匹配全部郵件的時候,你可以 省略 `query` 子句: ```Javascript GET /_search { "query": { "filtered": { "filter": { "term": { "folder": "inbox" }} } } } ``` 如果一條查詢語句沒有指定查詢范圍,那么它默認使用 `match_all` 查詢,所以上面語句 的完整形式如下: ```Javascript GET /_search { "query": { "filtered": { "query": { "match_all": {}}, "filter": { "term": { "folder": "inbox" }} } } } ``` ## 查詢語句中的過濾 有時候,你需要在 filter 的上下文中使用一個 query 子句。下面的語句就是一條帶有查詢功能 的過濾語句, 這條語句可以過濾掉看起來像垃圾郵件的文檔: ```Javascript GET /_search { "query": { "filtered": { "filter": { "bool": { "must": { "term": { "folder": "inbox" }}, "must_not": { "query": { <1> "match": { "email": "urgent business proposal" } } } } } } } } ``` <1> 過濾語句中可以使用`query`查詢的方式代替 `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>

                              哎呀哎呀视频在线观看