<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交互 如何與Elasticsearch交互取決于你是否使用Java。 ### Java API Elasticsearch為Java用戶提供了兩種內置客戶端: #### 節點客戶端(node client): 節點客戶端以無數據節點(none data node)身份加入集群,換言之,它自己不存儲任何數據,但是它知道數據在集群中的具體位置,并且能夠直接轉發請求到對應的節點上。 #### 傳輸客戶端(Transport client): 這個更輕量的傳輸客戶端能夠發送請求到遠程集群。它自己不加入集群,只是簡單轉發請求給集群中的節點。 兩個Java客戶端都通過9300端口與集群交互,使用Elasticsearch傳輸協議(Elasticsearch Transport Protocol)。集群中的節點之間也通過9300端口進行通信。如果此端口未開放,你的節點將不能組成集群。 >**TIP** >Java客戶端所在的Elasticsearch版本必須與集群中其他節點一致,否則,它們可能互相無法識別。 關于Java API的更多信息請查看相關章節:[Java API](http://www.elasticsearch.org/guide/) ### 基于HTTP協議,以JSON為數據交互格式的RESTful API 其他所有程序語言都可以使用RESTful API,通過9200端口的與Elasticsearch進行通信,你可以使用你喜歡的WEB客戶端,事實上,如你所見,你甚至可以通過`curl`命令與Elasticsearch通信。 > **NOTE** >Elasticsearch官方提供了多種程序語言的客戶端——Groovy,Javascript, .NET,PHP,Perl,Python,以及 Ruby——還有很多由社區提供的客戶端和插件,所有這些可以在[文檔](http://www.elasticsearch.org/guide/)中找到。 向Elasticsearch發出的請求的組成部分與其它普通的HTTP請求是一樣的: ```bash curl -X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' -d '<BODY>' ``` -------------------------------------------------- - VERB HTTP方法:`GET`, `POST`, `PUT`, `HEAD`, `DELETE` - PROTOCOL http或者https協議(只有在Elasticsearch前面有https代理的時候可用) - HOST Elasticsearch集群中的任何一個節點的主機名,如果是在本地的節點,那么就叫localhost - PORT Elasticsearch HTTP服務所在的端口,默認為9200 - PATH API路徑(例如_count將返回集群中文檔的數量),PATH可以包含多個組件,例如_cluster/stats或者_nodes/stats/jvm - QUERY_STRING 一些可選的查詢請求參數,例如`?pretty`參數將使請求返回更加美觀易讀的JSON數據 - BODY 一個JSON格式的請求主體(如果請求需要的話) 舉例說明,為了計算集群中的文檔數量,我們可以這樣做: ```Javascript curl -XGET 'http://localhost:9200/_count?pretty' -d ' { "query": { "match_all": {} } } ' ``` Elasticsearch返回一個類似`200 OK`的HTTP狀態碼和JSON格式的響應主體(除了`HEAD`請求)。上面的請求會得到如下的JSON格式的響應主體: ```Javascript { "count" : 0, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 } } ``` 我們看不到HTTP頭是因為我們沒有讓`curl`顯示它們,如果要顯示,使用`curl`命令后跟`-i`參數: ```Javascript curl -i -XGET 'localhost:9200/' ``` 對于本書的其余部分,我們將簡寫`curl`請求中重復的部分,例如主機名和端口,還有`curl`命令本身。 一個完整的請求形如: ```Javascript curl -XGET 'localhost:9200/_count?pretty' -d ' { "query": { "match_all": {} } }' ``` 我們將簡寫成這樣: ```Javascript GET /_count { "query": { "match_all": {} } } ``` 事實上,在Sense控制臺中也使用了與上面相同的格式。
                  <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>

                              哎呀哎呀视频在线观看