日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人文社科 > 生活经验 >内容正文

生活经验

Elasticsearch学习之路(一)

發(fā)布時(shí)間:2023/11/28 生活经验 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elasticsearch学习之路(一) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

一.前序

1.1正向索引和倒排索引

** 正向索引通常用于數(shù)據(jù)庫(kù)中,在搜索引擎領(lǐng)域使用的最多的就是倒排索引 **

通過(guò)例子表示:
我愛(ài)編程,
我愛(ài)編程,我是小碼農(nóng)

1.1.1 正向索引

假設(shè)我們使用mysql的全文檢索,會(huì)對(duì)上面兩句話(huà)進(jìn)行分詞處理,得到的結(jié)果如下:

我 愛(ài) 編程 愛(ài)編程 我愛(ài)編程 愛(ài)編
我 愛(ài) 編程 愛(ài)編程 我愛(ài)編程 愛(ài)編 小碼農(nóng)

我們通過(guò)正向索引搜索編程這兩個(gè)字,效率非常低下

1.1.2 倒排索引

倒排索引是按照分詞與文檔進(jìn)行映射,效果如下:

關(guān)鍵字文檔名
html1,html2
小碼農(nóng)html2
編程html1,html2

如果采用倒排索引的方式搜索編程這個(gè)詞,那么會(huì)直接找到關(guān)鍵字中查找到編程,然后查找到對(duì)應(yīng)的文檔,這就是所謂的倒排索引

  • 相關(guān)軟件
    • 后續(xù)用Kibana可視化界面工具
    • 某些東西需要篩選,比如一些敏感信息之類(lèi)的,用Logstash,再到es里面
軟件名下載地址
Elasticsearchhttps://www.elastic.co/cn/start
Kibanahttps://www.elastic.co/cn/start
Logstashhttps://www.elastic.co/cn/downloads/logstash

二.ES的下載和啟動(dòng)

1.下載ES
我這里下載的是7.15.0windows版本64位的
找到bin目錄下的elasticsearch.bat點(diǎn)擊啟動(dòng)
通過(guò)瀏覽器地址欄輸入:http://localhost:9200/打開(kāi)

2.下載Kibana
我這里下載的是7.15.0windows版本64位的
這個(gè)是之前啟動(dòng)是一樣的也是bin/kibana.bat啟動(dòng)
打開(kāi)http://localhost:5601/

之后操作ES都用Kibana管理工具
進(jìn)入到 Dev Tools里面操作
輸入GET _cat/indices查看所有索引試一下

3.下載Logstash
我這里下載的是7.15.0windows版本64位的

http://files.grouplens.org/datasets/movielens/下載ml-latest.zip
找到movies.csv移動(dòng)到和bin目錄同級(jí)

然后再手寫(xiě)一個(gè)conf配置文件logstash.conf

input{file{//這里路徑修改一下path => "E:/logstash-7.15.0-windows-x86_64/logstash-			7.15.0/movies.csv"start_position => "beginning"sincedb_path =>"E:/logstash-7.15.0-windows-x86_64/logstash-			7.15.0/db_path.log"}
}
filter{csv{separator => ","columns =>["id","content","genre"]}mutate{split => { "genre" => "|"}remove_field => ["path","host","@timestamp","message"]}mutate{split => ["content","("]add_field =>{"title" => "{[content][0]}"}add_field =>{"year" => "%{[content][1]}"}}mutate{convert =>{"year" => "integer"}strip =>["title"]remove_field =>["path","host","@timestamp","message","content"]}
}
output{elasticsearch{//ES地址hosts => "http://localhost:9200"//指定索引名字index => "movies"document_id => "%{id}"}stdout{}
}

使用命令logstash -f ../logstash.conf即可運(yùn)行
GET _cat/indices再查看一下就有movies這個(gè)東西了

三.ES的基本概念

3.1 索引

es中的索引有多層的意思:
a.某一類(lèi)文檔的集合就構(gòu)成了一個(gè)索引,類(lèi)比到數(shù)據(jù)庫(kù)就是一個(gè)數(shù)據(jù)庫(kù)(或者數(shù)據(jù)庫(kù)表)
b.它描述一個(gè)動(dòng)作就是將某個(gè)文檔保存到es的過(guò)程也叫索引
c.倒排索引

3.2 文檔

具體的一條數(shù)據(jù),類(lèi)比到數(shù)據(jù)庫(kù)就是一條記錄

3.3ES文件目錄結(jié)構(gòu)

{"_index":"movies",//索引名"_type":"_doc",//類(lèi)型"_id":"1000",//ID"_source":{//存放具體的數(shù)據(jù)......}
}

3.4 mapping

mapping是ES每一個(gè)文檔的約束信息,例如屬性的類(lèi)型,是否能被索引

3.5 DSL

DSL是ES的查詢(xún)語(yǔ)言

3.6類(lèi)比

通過(guò)DBMSES的基本概念進(jìn)行類(lèi)比

DBMSElasticsearch
databaseIndex
tabletype(在7.0之后type為固定值_doc)
RowDocument
ColumnField
SchemaMapping
SQLDSL(Descriptor Structure Language)

注:在7.0之前,一加粗樣式個(gè)Index可以創(chuàng)建多個(gè)類(lèi)型,從7.0開(kāi)始,一個(gè)索引只能創(chuàng)建一個(gè)類(lèi)型,也就是_doc

四.ES的基本使用

4.1 基本CRUD

GET _cat/indices 查看所有索引

GET movies/_search #查詢(xún)movies的數(shù)據(jù)

GET movies/_count #查詢(xún)movies的總數(shù)

GET _cat/indices #查看所有的索引

GET movies/_doc/24 查詢(xún)id位24的數(shù)據(jù)

POST users/_doc/1 #填加id為1的文檔,如果沒(méi)有指定id,ES會(huì)自動(dòng)生成
{“firstname”:“will”,“l(fā)astname”:“smith”}

POST users/_create/2 #創(chuàng)建id為2的文檔,如果索引中已存在相同id,會(huì)報(bào)錯(cuò):
{“firstname”:“will”,“l(fā)astname”:“smith”}

總結(jié)

以上是生活随笔為你收集整理的Elasticsearch学习之路(一)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。