Elasticsearch之倒排索引及索引操作
倒排索引
一 倒排索引是什么
倒排索引源于實(shí)際應(yīng)用中需要根據(jù)屬性的值來查找記錄,這種索引表中的每一個(gè)項(xiàng)都包括一個(gè)屬性值和具有該屬性值的各記錄的地址。由于不是由記錄來確定屬性值,而是由屬性值來確定記錄的位置,因而成為倒排索引。帶有倒排索引的文件我們稱之為倒排索引文件,簡(jiǎn)稱倒排文件
二 舉例
例如有如下三個(gè)文件:
文件A:通過Python django搭建網(wǎng)站
文件B:通過Python scrapy爬取網(wǎng)站數(shù)據(jù)
文件C:scrapy-redis分布式爬蟲
現(xiàn)在我們要查詢,帶有Python的文件,正常是對(duì)每個(gè)文件進(jìn)行遍歷,每個(gè)文件遍歷一次,如果文件特別大,每個(gè)文件有一億個(gè)字符,總共有一億各文件,每個(gè)我們都要遍歷,非常消耗資源
在存儲(chǔ)文件之前,先對(duì)文件進(jìn)行分析,將文件分詞,對(duì)分詞建立索引,例如下面一句話
1 今天是星期天我們出去玩
2 明天是星期天,放假
3 今天天氣很晴朗
4 xxx
5 他們出去玩了
| 關(guān)鍵詞 | 文章 |
|---|---|
| 今天 | 文章1,文章3 |
| 星期天 | 文章2 |
| 出去玩 | 文章5,文章1 |
實(shí)際上es在做存儲(chǔ)的時(shí)候,更詳細(xì),如下表
| 關(guān)鍵詞 | 文章 |
|---|---|
| 今天 | (文章1,<2,10>,2) (文章3,<8>,1) |
| 星期天 | (文章2,<12,25,100>,3) |
| 出去玩 | (文章5,<11,24,89>,3)(文章1,<8,19>,2) |
今天出現(xiàn)在哪個(gè)文章,出現(xiàn)的位置和出現(xiàn)的次數(shù)
三 倒排索引待解決的問題
1 大小寫轉(zhuǎn)換問題,如python和Python應(yīng)該為同一個(gè)詞
2 詞干抽取,looking和look應(yīng)該處理為同一個(gè)詞
3 分詞,如 屏蔽系統(tǒng) 是屏蔽 和系統(tǒng)兩個(gè)詞還是 為屏蔽系統(tǒng)一個(gè)詞
4 倒排索引文件過大,需要壓縮編碼
索引操作
具體操作可以查看官方文檔
https://www.elastic.co/guide/en/elasticsearch/reference/7.5/indices.html>
官方2版本的中文文檔
https://www.elastic.co/guide/cn/elasticsearch/guide/current/index-settings.html
一 索引初始化
#新建一個(gè)lqz2的索引,索引分片數(shù)量為5,索引副本數(shù)量為1
PUT lqz2
{
"settings": {
"index":{
"number_of_shards":5,
"number_of_replicas":1
}
}
}
'''
number_of_shards
每個(gè)索引的主分片數(shù),默認(rèn)值是 5 。這個(gè)配置在索引創(chuàng)建后不能修改。
number_of_replicas
每個(gè)主分片的副本數(shù),默認(rèn)值是 1 。對(duì)于活動(dòng)的索引庫(kù),這個(gè)配置可以隨時(shí)修改。
'''
二 查詢索引配置
#獲取lqz2索引的配置信息 GET lqz2/_settings #獲取所有索引的配置信息 GET _all/_settings #同上 GET _settings #獲取lqz和lqz2索引的配置信息 GET lqz,lqz2/_settings
三 更新索引
#修改索引副本數(shù)量為2
PUT lqz/_settings
{
"number_of_replicas": 2
}
#如遇到報(bào)錯(cuò):cluster_block_exception,因?yàn)?
#這是由于ES新節(jié)點(diǎn)的數(shù)據(jù)目錄data存儲(chǔ)空間不足,導(dǎo)致從master主節(jié)點(diǎn)接收同步數(shù)據(jù)的時(shí)候失敗,此時(shí)ES集群為了保護(hù)數(shù)據(jù),會(huì)自動(dòng)把索引分片index置為只讀read-only
PUT _all/_settings
{
"index": {
"blocks": {
"read_only_allow_delete": false
}
}
}
四 刪除索引
#刪除lqz索引 DELETE lqz
以上就是Elasticsearch之倒排索引及索引操作的詳細(xì)內(nèi)容,更多關(guān)于Elasticsearch倒排索引索引操作的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python數(shù)據(jù)結(jié)構(gòu)之循環(huán)鏈表詳解
循環(huán)鏈表 (Circular Linked List) 是鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)的另一種形式,它將鏈表中最后一個(gè)結(jié)點(diǎn)的指針指向鏈表的頭結(jié)點(diǎn),使整個(gè)鏈表頭尾相接形成一個(gè)環(huán)形,使鏈表的操作更加方便靈活。本文將詳細(xì)介紹一下循環(huán)鏈表的相關(guān)知識(shí),需要的可以參考一下2022-01-01
python自動(dòng)導(dǎo)入包的實(shí)現(xiàn)
本文主要介紹了python自動(dòng)導(dǎo)入包的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-04-04
Python實(shí)現(xiàn)PS濾鏡特效之扇形變換效果示例
這篇文章主要介紹了Python實(shí)現(xiàn)PS濾鏡特效之扇形變換效果,結(jié)合實(shí)例形式分析了Python實(shí)現(xiàn)PS濾鏡扇形變換效果的原理與相關(guān)操作技巧,需要的朋友可以參考下2018-01-01
用Pelican搭建一個(gè)極簡(jiǎn)靜態(tài)博客系統(tǒng)過程解析
這篇文章主要介紹了用Pelican搭建一個(gè)極簡(jiǎn)靜態(tài)博客系統(tǒng)過程解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08
Pandas實(shí)現(xiàn)復(fù)制dataframe中的每一行
這篇文章主要介紹了Pandas實(shí)現(xiàn)復(fù)制dataframe中的每一行方式,2024-02-02
Python實(shí)現(xiàn)視頻去抖動(dòng)功能
視頻去抖動(dòng)是視頻處理中的一項(xiàng)重要技術(shù),它可以有效地減少視頻中由于相機(jī)震動(dòng)或手持拍攝等原因而導(dǎo)致的畫面抖動(dòng),提高視頻的質(zhì)量,本文將介紹如何利用 Python 中的 OpenCV 庫(kù)實(shí)現(xiàn)視頻去抖動(dòng)的方法,并提供代碼實(shí)例,感興趣的朋友可以參考下2024-04-04
Python3+Requests+Excel完整接口自動(dòng)化測(cè)試框架的實(shí)現(xiàn)
這篇文章主要介紹了Python3+Requests+Excel完整接口自動(dòng)化測(cè)試框架的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
tensorflow轉(zhuǎn)換ckpt為savermodel模型的實(shí)現(xiàn)
這篇文章主要介紹了tensorflow轉(zhuǎn)換ckpt為savermodel模型的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,一起跟隨小編過來看看吧2020-05-05

