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

歡迎訪問 生活随笔!

生活随笔

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

生活经验

Elasticsearch学习之路(一)

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

一.前序

1.1正向索引和倒排索引

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

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

1.1.1 正向索引

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

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

我們通過正向索引搜索編程這兩個字,效率非常低下

1.1.2 倒排索引

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

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

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

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

二.ES的下載和啟動

1.下載ES
我這里下載的是7.15.0windows版本64位的
找到bin目錄下的elasticsearch.bat點擊啟動
通過瀏覽器地址欄輸入:http://localhost:9200/打開

2.下載Kibana
我這里下載的是7.15.0windows版本64位的
這個是之前啟動是一樣的也是bin/kibana.bat啟動
打開http://localhost:5601/

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

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

http://files.grouplens.org/datasets/movielens/下載ml-latest.zip
找到movies.csv移動到和bin目錄同級

然后再手寫一個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即可運行
GET _cat/indices再查看一下就有movies這個東西了

三.ES的基本概念

3.1 索引

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

3.2 文檔

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

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

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

3.4 mapping

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

3.5 DSL

DSL是ES的查詢語言

3.6類比

通過DBMSES的基本概念進行類比

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

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

四.ES的基本使用

4.1 基本CRUD

GET _cat/indices 查看所有索引

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

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

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

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

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

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

總結(jié)

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

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