ElasticSearch的客戶端操作


實際開發中,主要由三種方式可以作為elasticsearch服務的客戶端:

  1.elasticsearch-head插件;

  2.使用elasticsearch提供的Restful接口直接訪問;

  3.使用elasticsearch提供的API進行訪問;

使用Postman工具進行Restful接口訪問(下載地址:https://www.postman.com/

  1.elasticsearch的接口語法

curl ‐X<VERB> '<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>' ‐d '<BODY>'

    解釋:

      VERB:適當的HTTP方法或謂詞,(GET,POST,PUT,DELETE);

      PROTOCOL:HTTP或者HTTPS(如果你在elasticsearch前面有一個HTTPS代理);

      HOST:elasticsearch集群中任意節點的主機名,或者用localhost代表本機機器上的節點;

      PORT:運行elasticsearch http服務的端口號,默認為9200;  

      PATH:API的終端路徑;

      QUERY_STRING:任意可選的查詢字符串參數;

      BODY:一個JSON格式的請求體;  

  2.創建索引index和映射mapping(添加)

    2.1 在postman地址欄中輸入如下地址:(添加的HTTP方法是PUT)

http://localhost:9200/wn_2

    2.2 請求體

復制代碼
{
    "mappings":{
        "type_table1":{
            "properties": {
                "id":{
                    "type":"long",
                    "store":true,
                    "index":"not_analyzed"
                },
                "title":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                },
                "content":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                }
            }
        }
    }
}
復制代碼

      

    2.3 點擊Send按鈕,查看頁面執行結果

      

      點擊【信息】下的【索引信息】,查看elasticsearch-head: 

      

  3.創建索引后設置mapping(修改)

    3.1 先創建一個索引,不指定mapping信息

      

    3.2 請求的url(修改請求的方式是POST)

http://localhost:9200/wn_1/type_table2/_mapping

    3.3 請求體  

復制代碼
{
        "type_table2": {
            "properties": {
                "id":{
                    "type":"long",
                    "store":true,
                    "index":"not_analyzed"
                },
                "title":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                },
                "content":{
                    "type":"text",
                    "store":true,
                    "index":"analyzed",
                    "analyzer":"standard"
                }
            }
        }
}
復制代碼

    3.4 點擊Send后執行的結果

      

      

  4.刪除索引index

    4.1 請求的url  (刪除的請求方式是delete)

http://localhost:9200/wn_2

    4.2 實現效果

      

       

  5.創建文檔document

    5.1 請求的url (請求方式post)

http://localhost:9200/wn_1/type_table2/1

    5.2 請求體

{ 
    "id":1,
    "title":"ElasticSearch是一個基於Lucene的搜索服務器", 
    "content":"它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java 開發的,並作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。設計用於雲計算中,能夠達到實時 搜索,穩定,可靠,快速,安裝使用方便。" 
}

    5.3 點擊Send后,查看實現效果

      

       

  6.修改文檔document

    6.1 請求的url·(請求的方式是POST)

http://localhost:9200/wn_1/type_table2/1

    6.2 請求體

{ 
    "id":1, 
    "title":"【修改】ElasticSearch是一個基於Lucene的搜索服務器", 
    "content":"【修改】它提供了一個分布式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch 是用Java開發的,並作為Apache許可條款下的開放源碼發布,是當前流行的企業級搜索引擎。設計用於雲計算中,能夠 達到實時搜索,穩定,可靠,快速,安裝使用方便。"
}

    6.3 點擊Send后,實現效果    

      

  7.刪除文檔document

    7.1 請求的url (請求的方式是delete)

http://localhost:9200/wn_1/type_table2/1

    7.2 點擊Send后,實現效果

      

  8.查詢文檔-根據id查詢

    8.1 創建文檔(兩條數據)

      

    8.2 請求的url  (請求方式是GET)      

http://localhost:9200/wn_1/type_table2/1

    8.3 點擊Send后,查詢出的結果

      

  9.查詢文檔-querystring查詢

    9.1 請求的url  (請求的方式為POST)

http://localhost:9200/wn_1/type_table2/_search

    9.2 請求體

復制代碼
{ 
    "query": { 
        "query_string": { 
            "default_field": "title", 
            "query": "搜索服務器" 
        } 
    } 
}
復制代碼

    9.3 點擊Send后,效果實現

      

     9.4 注意:將搜索內容"搜索服務器"修改為"修改",同樣也能搜索到文檔 

      

  10.查詢文檔-term查詢

    10.1 請求的url  (請求的方式為POST)

http://localhost:9200/wn_1/type_table2/_search

    10.2 請求體

復制代碼
{ 
    "query": { 
        "term": { 
            "title": "搜索" 
        } 
    } 
}
復制代碼

    10.3 點擊Send,效果實現

      

      因為這里使用的是標椎分詞器,所以查出的數據是空的,下面我可以測試一下標椎分詞器的效果:(GET請求方式)

http://localhost:9200/_analyze?analyzer=standard&pretty=true&text=我是程序員

      效果實現:

        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM