ES使用和搜尋中心的建設(一:基礎介紹與語法)

好享家技術團隊發表於2020-04-07

一:elasticsearch 是什麼

  • elasticsearch 是一個高度可擴充套件的開開源的分散式 RESTful搜尋和分析引擎
  • 它具有快速,近乎實時儲存,搜尋和分析大量資料
  • 它通常作為一個基礎引擎技術為公司的搜尋中心專案所用

二:為什麼要學習elasticsearch

  • 迄今為止最先進,效能最好,功能最全的搜尋引擎庫Lucene
  • 分散式實時檔案儲存
  • 支援橫向擴充套件和縱向擴充套件。不需要程式去關注這些。

三:elasticsearch幾個使用場景

  • 如果你的公司有電商專案,可以使用elasticsearch儲存商品,目錄和庫存,為使用者提供搜尋和自動補全搜尋關鍵詞的功能。
  • 如果你想收集資料和日誌資訊,並且通過這些資料找到趨勢,統計資訊,摘要和異常,可以使用Logstash(Elasticsearch/Logstash/Kibana 堆疊的一部分功能)去收集、解析和彙總資料。然後將這些資料放入elasticsearch中,我們就可以在elasticsearch挖掘我們想要的資料資訊。
  • 全商品中心的商品降價推送。平臺可以抓取所有供應商的價格,將其推送的elasticsearch並使用倒排功能(Percolator)與使用者的查詢相匹配,匹配合適就可以推送給使用者購買。
  • 使用Kibana(Elasticsearch/Logstash/Kibana stack)對elasticsearch儲存的資料自定義儀表板。使用elasticsearch的聚合功能對資料進行復雜的商業智慧查詢。

四:安裝es和Kibana

1:下載安裝,執行,不多介紹,預設執行地址:http://localhost:9200/

2:安裝Kibana,Kibana(sense)是一個和ES一起使用的開源分析和視覺化平臺。安裝成功後啟動 http://localhost:5601/app/sense

3:Kibana介面->dev_tools->控制檯,demo如下:查詢所有的資料

ES使用和搜尋中心的建設(一:基礎介紹與語法)
返回引數 含義
took 耗費時間(毫秒)
time_out 是否超時(預設無)
_shards 資料的分片,total:分片總數 successful:分片成功數
hits.total 查詢結果集數量(多少個document)
hits.max_score 文件與查詢的匹配程度,越匹配分數越高
hits.hits 返回文件資料詳情,是一個陣列,每個陣列包含排名前十的文件
_index 文件儲存的地方
_type 文件代表的物件的類
_id 文件的唯一標識
_source 儲存的json字串

五:ES的通訊

  • java語言可以使用elasticsearch內建的兩個客戶端-節點客戶端和傳輸客戶端與es進行互動
  • 其他的語言使用 RESTful API 通過埠和 Elasticsearch 進行通訊
  • 也可以直接通過curl命令直接和es互動

六:資料

1:文件 (document)

ES面向文件的儲存方式。文件(document)是ES根物件(root object)序列化的資料,包含儲存的資料(_source)和其他的物件資訊。

2:索引(indexing)
  • ES中儲存資料的行為就叫做索引,文件存在索引中,相當於關聯式資料庫的DB
ES使用和搜尋中心的建設(一:基礎介紹與語法)
  • 也可以不單獨建立索引,直接建立文件,索引也直接建立
ES使用和搜尋中心的建設(一:基礎介紹與語法)
引數 含義
hosjoy 索引名
employee 型別名
1 員工的id
3:搜尋
  • 直接搜尋,索引/型別/id

    ES使用和搜尋中心的建設(一:基礎介紹與語法)
  • 搜尋一個型別的全部資料,id替換為_search

    ES使用和搜尋中心的建設(一:基礎介紹與語法)
  • 匹配文件資料內容(查詢字串搜尋)q=

ES使用和搜尋中心的建設(一:基礎介紹與語法)
  • DSL(Domain Specific Language特定領域語言)語句查詢
ES使用和搜尋中心的建設(一:基礎介紹與語法)
  • 全文檢索
ES使用和搜尋中心的建設(一:基礎介紹與語法)
4:更新
  • 直接可以根據索引id修改json值
5: 刪除
ES使用和搜尋中心的建設(一:基礎介紹與語法) ES使用和搜尋中心的建設(一:基礎介紹與語法)

相關文章