<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
ElasticSearch是非常重要的檢索工具,利用分詞、索引(倒排索引)、分詞從眾多檢索工具中脫穎而出,本章是入門基礎學習篇內容。
ElasticSearch是面向檔案的,檔案是所有可搜尋資料的最小單位
檔案會被序列化成Josn格式,儲存在ElasticSearch中
每個檔案都有一個UniqueID
你可以自己指定ID
或者通過ElasticSearch自動生成
{ "_index" : ".kibana_1", "_type" : "_doc", "_id" : "space:default", "_score" : 1.0, "_source" : { "space" : { "name" : "預設值", "description" : "這是您的預設空間!", "color" : "#00bfb3", "_reserved" : true }, "type" : "space", "references" : [ ], "updated_at" : "2022-05-13T09:16:16.465Z" } }
//檢視索引相關資訊 GET kibana_sample_data_ecommerce //檢視索引的檔案總數 GET kibana_sample_data_ecommerce/_count //檢視前10條檔案,瞭解檔案格式 POST kibana_sample_data_ecommerce/_search { } //_cat indices API //檢視indices GET /_cat/indices/kibana*?v&s=index //檢視狀態為綠的索引 GET /_cat/indices?v&health=green //按照檔案個數排序 GET /_cat/indices?v&s=docs.count:desc //檢視具體的欄位 GET /_cat/indices/kibana*?pri&v&h=health,index,pri,rep,docs.count,mt //How much memory is used per index? GET /_cat/indices?v&h=i,tm&s=tm:desc
-E cluster.name=stark
進行設定-E node.name=node1指定
{ "settings": { "number_of_shards": 1, "number_of_replicas": 1 } }
1.使用PostMan建立一個名字叫stark的索引
http://127.0.0.1:9200/stark?pretty // 返回值 { "acknowledged": true, "shards_acknowledged": true, "index": "stark" }
支援自動生成檔案ID和指定檔案ID兩種方式:
POST /indexName/_doc
,系統會自動生成Document IDPUT /indexName/_create/ID
建立時,URI中顯示指定_create
,此時如果該ID的檔案已經存在,操作失敗GET http://127.0.0.1:9200/IndexName/_doc/ID
PUT IndexName/_doc/1 { "tags":["name","age","sex"] }
Index和Create不一樣的地方:如果檔案存在,就索引新的檔案。否則現有檔案會被刪除,新的檔案被索引,版本資訊(Version) + 1。
Update方法不會刪除原來的檔案,而是實現真正的資料更新,POST方法 ,Payload需要包含在doc中。
POST IndexNmae/_update/1 { "doc":{ "albums":["aaa","bbb"] } }
DELETE IndexName/_doc/ID
Bulk Api 支援在一次Api呼叫中,對不同的索引進行操作,支援四種型別操作,IndexCreateUpdateDelete。
可以在URI中指定Index,也可以在請求的Payload中進行,操作單挑操作失敗,並不影響其他操作,返回結果包括了每一條操作執行的結果。
//對同一個索引進行操作 POST /IndexName/_doc/_bulk //對不同的索引進行操作 POST _bulk { "index" : { "_index" : "test", "_id" : "1" } } { "field1" : "value1" } { "delete" : { "_index" : "test", "_id" : "2" } } { "create" : { "_index" : "test2", "_id" : "3" } } { "field1" : "value3" } { "update" : {"_id" : "1", "_index" : "test"} } { "doc" : {"field2" : "value2"} }
mGet批次操作,可以減少網路連結所產生的開銷,提高效能。
#URI中指定index GET /IndxName/_mget { "docs" : [ { "_id" : "1" }, { "_id" : "2" } ] } //對不同的索引進行操作 GET /_mget { "docs" : [ { "_index" : "test", "_id" : "1" }, { "_index" : "test", "_id" : "2" } ] }
批次查詢 msearch
// msearch 操作 POST kibana_sample_data_ecommerce/_msearch {"query" : {"match_all" : {}},"size":1} {"index" : "kibana_sample_data_flights"} {"query" : {"match_all" : {}},"size":2}
倒排索引的核心組成
Es的倒排索引
1.指定查詢的索引
叢集上所有的索引:
GET /_search //叢集上所有的索引 GET /Index1/_search //index1 GET /Index1,Index2/_search //index1和index2 GET /index*/_search //以index開頭的索引
2.URI查詢
用q表示查詢內容,搜尋叫做stark的客戶GET /IndexName/_search?q=keyName:stark
3.Request Body
Request Body 支援 POST/GET兩種方法,-H代表的是header引數 -d 代表的是body的請求引數。
curl -XGET "http://127.0.0.1:9200/IndexName/_search" -H 'Content-Type:application/json' -d ' { "query":{ "match_all":{} } } '
4.搜尋Response
搜尋Response有幾個關鍵的描述需要在這裡解釋一下:
q是關鍵字,df是指定欄位,泛查詢就是查詢所有欄位中包含關鍵字的結果
//指定欄位 GET /IndexName/_search?q=2020&df=title GET /IndexName/_search?q=title:2020 { "profile":"true" } //泛查詢 GET /IndexName/_search?q=2020 { "profile":"true" }
Hello World 等效於 Hello Or World
"Hello World",等效於Hello AND World 。Phrase查詢,還要求前後順序保持一致
分組和引號
//分組,Bool查詢 GET /IndexName/_search?q=title:(Hello World) { "profile":"true" } //泛查詢 GET /IndexName/_search?q=title:Hello World { "profile":"true" }
//檢索title裡有Hello ,沒有World的詞條 GET /IndexName/_search?q=title:(Hello NOT World) { "profile":"true" } //檢索title裡必須有Hello ,必須沒有World的詞條 GET /IndexName/_search?q=title:(+Hello -World) { "profile":"true" }
URI Search支援範圍查詢和算術符號查詢。
GET /IndexName/_search?q=year:>2020 { "profile":"true" }
萬用字元查詢 、正規表示式 、模糊匹配與近似查詢效率低,佔用記憶體大,不建議使用,這部分大家有個瞭解就好。
以上就是搜尋一文入門ElasticSearch(節點 分片 CRUD 倒排索引 分詞)的詳細內容,更多關於ElasticSearch搜尋入門的資料請關注it145.com其它相關文章!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45