最新Java Elasticsearch 7.x(7.10)教程(二)-Rest API Test


一、幾個概念

1、Index Type Document

一般我們初學時會把這些與數據庫進行對照方便理解

  • Index->Database
  • Type->Table (最新版本已經不使用Type了,所以很多人會奇怪為什么去掉了?ES並非和數據庫是相同的,所以不要完全按數據庫的方式來看ES)
  • Document->Row

2、倒排索引

參考此文:(一般我們從目錄找到相應的文章為正向索引,如果從關鍵詞索引找到對應的文章即倒排索引)

ES 索引解析(倒排索引 | 正排索引)

 

二、幾種Java調用ES方式

  • Rest API Test
  • Using Spring Data Repositories
  • Using the RestClient
  • Using Transport Client

三、Rest API Test

參考官方文檔:

https://www.elastic.co/guide/en/elasticsearch/reference/current/getting-started-index.html​www.elastic.co

 

#1、創建索引及document #e.g. PUT /index名/_doc/document id #最新版本已經沒有type,且這里固定為_doc PUT /index-test/_doc/1 {  "id":"1",  "name": "hello world",  "code":11 }   #2、更新document(有兩種方式:方式一與創建索引一致就會更新;方式二改成POST) #e.g. POST /index名/_doc/document id POST /index-test/_doc/1 {  "id":"1",  "name": "hello world",  "code":12 }   #3、查詢 #e.g. GET /index名/_search #可以查詢出所以索引及數據 #其中_score為匹配度 GET /index-test/_search {  "query": {  "match_all": {}  } }  #4、模糊查詢 關鍵詞 match match_phrase match_phrase_prefix #match 包含模糊匹配、單詞匹配、短語匹配 #e.g. 查詢“hello w”有結果 w不是一個完全的單詞或短語 #match_phrase 包含單詞匹配、短語匹配 #e.g. 查詢“hello w”無結果 #match_phrase_prefix 包含單詞匹配、短語匹配,同時增加在集合內通配符匹配 #e.g. 查詢“hello w”有結果 #match match_phrase_prefix 區別在於 hello wadasas match有結果, #match_phrase_prefix無結果 GET /index-test/_search {  "query": {  "match": {  "name": "hello wa"  }  } }   #5、精確查詢(精確是指精確到單詞) GET /index-test/_search {  "query": {  "term": {  "name": "hello"  }  } } #6、精確查詢,且使用多個單詞(精確是指精確到單詞) GET /index-test/_search {  "query": {  "terms": {  "name": ["hello","world"]  }  } }   #7、增加中文分詞ik #支持2種分詞模式ik_smart ik_max_word #測試分詞效果 _analyze GET /index-test/_analyze {  "analyzer": "ik_max_word",  "text": "你世界好" }    #8、排序與分頁 GET /bank/_search {  "query": { "match_all": {} },  "sort": [  { "age": "asc" }  ],  "from": 1,  "size": 1 }    #9、詞頻統計 DELETE message_index #創建索引數據結構 PUT message_index {  "mappings": {  "properties":{  "message": {  "analyzer": "ik_smart",  "type": "text",  "fielddata":"true"  }  }  } }  #增加doc1 PUT /message_index/_doc/1 {  "message":"最新版本已經不使用Type了,所以很多人會奇怪為什么去掉了"  } #增加doc2 PUT /message_index/_doc/2 {  "message":"ES並非和數據庫是相同的,所以不要完全按數據庫的方式來看ES"   }   #aggs為Aggregations(聚合)縮寫 #size 10 為前10的統計結果 #默認熱點降序出結果 POST /message_index/_search {  "size" : 0,  "aggs" : {  "messages" : {  "terms" : {  "size" : 10,  "field" : "message"  }  }  } }

 

最新Java Elasticsearch 7.10教程(匯總)

玄明Hanko:最新Java Elasticsearch 7.10教程(匯總)​zhuanlan.zhihu.com

 

 


免責聲明!

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



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