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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                # Get 接口 get API可以根據跟定的`id`來獲取在索引庫中存放的文檔。下面演示了從一個叫`twitter`的索引庫的`tweet` type下獲取文檔,`id`是`0`: ``` GET twitter/tweet/0 ``` 響應結果如下: ``` { "_index" : "twitter", "_type" : "tweet", "_id" : "0", "_version" : 1, "found": true, "_source" : { "user" : "kimchy", "date" : "2009-11-15T14:12:12", "likes": 0, "message" : "trying out Elasticsearch" } } ``` 上面的結果包含了我們想要提取的文檔的`_index`、`_type`、`_id`、`_version`信息,一旦我們找到文檔,則真正的文檔包含在`_source`下(響應體中的`found`標識了是否找到文檔)。 API也可以使用`HEAD`請求來判斷文檔是否存在,例如: ``` HEAD twitter/tweet/0 ``` ## 實時 默認情況下,get API 是實時的,而且它不受創建索引文檔的刷新頻率的影響(當數據對search操作可見)。如果文檔已經修改完,但沒還有沖刷,get API將會發起 就地沖刷操作使得文檔可見。這也會導致其他文檔在上一次沖刷之后發生改變的也會可見。若要禁止`GET`的實時操作,可以設置`realtime`參數為`false`。 ## 可選的`Type` get API允許`_type`是可選的,設置為`_all`后將會從所有的`type`中按順序返回第一個匹配的文檔。 ## `Source`過濾 默認情況下,get操作返回`_source`字段的內容,除非你使用`stored_fields`參數或禁用`_source`字段。你可以使用`_source`參數來關閉提取`_source`信息: ``` GET twitter/tweet/0?_source=false ``` 如果你只想從`_source`的全部信息中獲取其中的一到兩個字段,你可以使用`_source_include`與`_source_exclude`參數來包含或排除你需要的信息部分。這在大型文檔中非常有用,部分提取可以節省網絡開銷。這兩個參數都可以使用逗號分隔多個字段以及通配符表達式,例如: ``` GET twitter/tweet/0?_source_include=*.id&_source_exclude=entities ``` 如果你僅需要使用包含某些字段,你可以使用更短的符號: ``` GET twitter/tweet/0?_source=*.id,retweeted ``` ## 存儲字段 get 操作允許指定一系列的存儲字段,這些字段將會被通過傳遞`stored_fields`參數返回。如果請求的字段沒有被儲存,將會被忽略。參考以下示例: ``` PUT twitter { "mappings": { "tweet": { "properties": { "counter": { "type": "integer", "store": false }, "tags": { "type": "keyword", "store": true } } } } } ``` 現在我們添加一個文檔: ``` PUT twitter/tweet/1 { "counter" : 1, "tags" : ["red"] } ``` 然后提取它: ``` GET twitter/tweet/1?stored_fields=tags,counter ``` 上面操作的返回結果為: ``` { "_index": "twitter", "_type": "tweet", "_id": "1", "_version": 1, "found": true, "fields": { "tags": [ "red" ] } } ``` 從文檔中獲取的字段的值通常是返回一個數組。由于`counter`字段沒有存儲,當嘗試獲取`stored_fields`時get會將其忽略。 也可以對元數據字段進行檢索,比如`_routing`和`_parent`: ``` PUT twitter/tweet/2?routing=user1 { "counter" : 1, "tags" : ["white"] } ``` ``` GET twitter/tweet/2?routing=user1&stored_fields=tags,counter ``` 上面操作的返回結果為: ``` { "_index": "twitter", "_type": "tweet", "_id": "2", "_version": 1, "_routing": "user1", "found": true, "fields": { "tags": [ "white" ] } } ``` 只有葉子字段才可以通過`stored_field`選項返回。所以`object`字段無法返回并且這個請求會失敗 ## 生成的字段 如果在創建索引和沖刷過程中沒有發生沖刷操作,GET會訪問事務日志來獲取文檔。然而,一些字段只會在創建索引時生成,如果你嘗試訪問那些只有在創建索引時才會創建的字段,默認情況下會得到一個異常。你可以通過設置`ignore_errors_on_generated_fields=true`來忽略那些字段。 ## 直接獲取`_source` 使用`/{index}/{type}/{id}/_source`可以只獲取文檔的`_source`字段,不會有其他多余的內容,例如: ``` GET twitter/tweet/1/_source ``` 你也可以使用過濾參數來控制`_source`的哪些部分可以被返回: ``` GET twitter/tweet/1/_source?_source_include=*.id&_source_exclude=entities' ``` 注意,同樣可以使用HEAD操作來檢測文檔的`_source`是否存在。如果它在[mapping](../Mapping/Meta-Fields/_source_field.md)里被禁止,一個存在的文檔也不會有`_source`。例如: ``` HEAD twitter/tweet/1/_source ``` ## 路由 當創建索引時想要控制路由,為了獲取文檔,路由的值也因該提供,例如: ``` GET twitter/tweet/2?routing=user1 ``` 以上的操作會獲取id為`2`的tweet,但是是基于用戶來路由的。注意,如果沒有設置正確的路由,將會導致問無法被獲取。 ## 偏好 可以控制`preference`來讓get請求在哪個副本分片上進行搜索,默認情況下,操作將隨機在各個副本分片上執行。 `_primary` ``` 操作將只在主分片上執行。 ``` `_local` ``` 操作將盡可能的在本地分配的分片上執行。 ``` **自定義(字符串)值** ``` 自定義值將用于保證相同的分片將使用相同的自定義值。這可以幫助在不同沖刷狀態下擊中不同分片時的“跳躍值”。譬如可以是一些像會話id或者用戶名這樣的值。 ``` ## 沖刷(Refresh) `refresh`參數可以被設置為`true`,用來在`get`操作之前沖刷相關的分片,使其變得可搜索。將其設置為`true`應在仔細思考和驗證后,不會對系統造成重負荷(并減慢索引)。 ## 分布式 get操作被散列到一個指定的分片id。然后被重定向到這個id對于的一個分片并返回結果。這個分片的id是主分片和副本分片組中的一個。這意味著我們在擁有更多的副本時,我們將擁有更好的GET擴展性。 ## 版本控制支持 我們可以在提取文檔時使用`version`參數,只有在它的當前版本等于指定的版本時才會返回。對于所有版本類型而言,此行為是相同的,但FORCE的版本類型除外,它始終檢索文檔。注意:`FORCE`版本類型已棄用。 在內部,Elasticsearch已將舊文檔標記為已刪除,并添加了全新的文檔。文檔的舊版本不會立即消失,盡管您將無法訪問該文檔。當您繼續索引更多數據時,Elasticsearch會在后臺清理已刪除的文檔。 > my note > > Get 的實時性
                  <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>

                              哎呀哎呀视频在线观看