ElasticSearch下文及以後簡稱es
es是什麼,能做哪些事情,有哪些特點?
es是搜索和分析引擎,開源、分佈式,適用於所有類型的數據,包括文本、數字、地理空間、結構化和非結構化數據等。Elasticsearch 在 Apache Lucene 的基礎上開發而成,因 REST 風格 API、分佈式特性、速度和可擴展性而聞名,有以下用途:
- 應用程序搜索
- 網站搜索
- 企業搜索
- 日誌處理和分析
- 基礎設施指標和容器監測
- 應用程序性能監測
- 地理空間數據分析和可視化
- 安全分析
- 業務分析
基本概念:
1,Index(索引)
作動詞時,可理解爲插入,相當於mysql的insert
做名詞時,相當於mysql的數據庫
2,Type類型
相當於mysql中的table,在Index(索引)中,可以定義一個或多個類型
3,Document(文檔)
相當於mysql中,table的行數據。是保存在某個索引(Index)下,某種類型(Type)的一個數據(Document),json格式
4,屬性
相當於table表的字段
老師講課課件:
ES爲什麼檢索高效?
得益於倒排索引機制,以“紅海行動”爲例說說這個機制的原理:
將紅海行動存一條記錄,假如命名這條爲1
紅海行動進行分詞,比如分爲紅海和行動兩個詞,將這倆詞再維護到倒排索引表中,這個索引表就會這樣記錄
紅海 1
行動 1
上面的意思是紅海這個詞在記錄1中存在,行動這個詞在記錄1中存在
同理,如果存探索紅海行動爲記錄2,倒排索引表就是這樣
探索 2
紅海 2
行動 2
合起來就是
探索 2
紅海 1,2
行動 1,2
類推紅海特工行動3就是
探索 2
紅海 1,2,3
行動 1,2,3
特工 3
來檢索時,首先分詞,比如特工行動這4個字,特工檢索結果是3,行動檢索結果是1,2,3,所以檢索返回的結果就是1,2,3對應的數據:
紅海行動
探索紅海行動
紅海特工行動
返回這3條記錄會有相關性得分,本例中,3記錄出現了兩次,1和2記錄都是出現兩次,那就是3記錄“紅海特工行動”得分最高
老師講課課件: