Elasticsearch入門 - 概念篇

開篇

本文只是簡單寫一些官方的介紹,能夠簡單看下,混個「臉熟」,瞭解幾個關鍵詞便可,好比索引,類型,文檔,RESTful API,不必深究。另外我的建議不要急於在網上找案例寫代碼(固然具體看我的狀況),好比在 springboot 中整合 elasticsearch,裏面不少註解你都不知道看不懂。好比下面的代碼片斷:html

@Document(indexName = "item",type = "docs", shards = 1, replicas = 0)
public class Item {
    @Id
    private Long id;

    @Field(type = FieldType.Text, analyzer = "ik_max_word")
    private String title; 

    @Field(type = FieldType.Keyword)
    private String category;
}

什麼是 Elasticsearch

Elasticsearch 是一個基於 Lucene 的開源搜索引擎,而 Lucene 是一個搜索庫,直接使用的話會很是複雜。有了 Elasticsearch 後,咱們就能夠經過 RESTful API 來調用 Lucene 的搜索功能。它支持各類語言的客戶端甚至命令行與之交互 ,除此以外,它還具有如下特色:spring

  • 分佈式的實時文件存儲,每一個字段都被索引並可被搜索
  • 分佈式的實時分析搜索引擎
  • 能夠擴展到上百臺服務器,處理PB級結構化或非結構化數據

什麼是搜索引擎

咱們能夠舉一些使用場景,好比咱們常常用的百度搜索,或者一些電商平臺的搜索功能,好比:在電商上搜索 「牙膏」,它就能幫咱們羅列出一堆包含牙膏的商品。具體的圖這裏就不貼了,咱們能看到的就是那些包含牙膏的搜索結果,而搜索背後的處理過程都是由搜索引擎幫咱們完成的。sql

名詞解釋

要想初步認識 Elasticsearch,須要認識如下幾個名詞:數據庫

  • 索引(indices)
  • 類型(type)
  • 文檔(document)

在 Elasticsearch中,文檔(document)歸屬於一種類型(type),而這些類型存在於索引(index)中。springboot

這樣說可能仍是有點模糊,咱們能夠拿一種關係型數據庫來對比,以下所示:服務器

Mysql -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices -> Types -> Documents -> Fields

Elasticsearch 的安裝

如今 Elasticsearch 版本已經更新到 7.x (我的安裝也是採用最新版本),這裏推薦幾篇安裝教程,親測有效。elasticsearch

Elasticsearch 7.x 最詳細安裝及配置分佈式

http://www.javashuo.com/article/p-reiowqnf-mb.html搜索引擎

安裝過程可能出現的錯誤命令行

https://www.cnblogs.com/duanxuan/p/6473005.html

http://www.javashuo.com/article/p-ddjacbyd-dy.html

總結

本文主要介紹了 Elasticsearch 的基本概念,核心關鍵詞仍是 檢索。文中大部分介紹仍是相對比較官方,不理解也不要緊,特別是索引,類型,文檔的概念,這些在具體使用過程當中會更好理解。

相關文章
相關標籤/搜索