elasticSearch簡介

1.1  apache Lucene簡介

1.1.1  熟悉lucene

         lucene的特點:成熟,高性能,可擴展,輕量級以及強大的功能

1.1.2 lucene的總體架構

   文檔(decument):索引與搜索的主要數據載體,它包含一個或者多個字段,存放將要寫入索引或將從索引搜索出來的數據
   字段(field):文檔的一個字段,它包含兩個部分,字段的名稱和內容
   詞項(term):搜索時的一個單位,代表文本中的某個詞
   詞條(token):詞項在字段中的一次出現,包含詞項的文本,開始,結束的位移以及類型

   要傳統的關係型數據庫不一樣,lucene將寫入索引的所有信息組織成一種名爲倒排索引(inverted index)的結構

1.1.3 分析你的數據

   文本分析是由分析器來執行的,而分析器是由分詞器(tokenizer),過濾器(filter)和字符映射器(character mapper)組成的
   注意:es中有些查詢會被分析,而有些則不會,例如 前綴查詢(prefix query)不會被分析,而匹配查詢(match query)
會被分析 

1.1.4  lucene查詢語言

  • 在字段中查詢
          =  in  
  • 詞項修飾符
          通配符: ?:匹配任意一個字符
                        *  :匹配多個字符
                   注意:處於性能的考慮,通配符不能作爲詞項的第一個字符出現,這個與sql中like是一樣的
          模糊查詢(fuzzy  and proximity):
                       ~緊隨一個整數值:模糊匹配  意思是~字符後的整數值確定了近似詞項與原始詞項的最大編輯距離
                    例如:執行查詢  title:mastering elasticsearch  包含  mastering  book  elasticsearch 的文檔不匹配
                              執行查詢  title:mastering elasticsearch~2   的話  mastering  book  elasticsearch 的文檔匹配
  •  特殊字符處理
          需要對字符進行轉義

  1.2  EalsticSearch簡介

1.2.1  ealsticSearch的基本概念

  • 索引
索引類似於關係型數據庫中的數據庫,es是通過lucene將數據寫入索引或從索引中檢索數據,es中的索引可能由一個或多個lucene索引構成
  • 文檔
可以將es的文檔理解與lucene的文檔是一回事,就是一個json對象
  • 映射
存儲所有的元信息
  • 類型
可以在一個index中存儲多種文檔類型,併爲不同的文檔提供不同的映射
  • 節點
節點:單個的es服務實例
  • 集羣
  • 分片
es將數據散佈到多個物理lucene索引中,這些lucene索引稱爲分片(shard),而散佈這些分片的過程叫做分片處理(sharding),es會自動完成分片處理,並且讓這些分片呈現出一個大索引的樣子
  • 副本
  • 網關

1.2.2  es架構背後的關鍵概念

  • 合理的默認配置
  • 默認的分佈式工作模式
  • 對等架構可以避免單點故障
  • 易於向集羣擴充新節點
  • es沒有對索引中的數據結構強加任何限制
  • 準實時

1.2.3  es的工作流程

  • 啓動過程
節點啓動,使用廣播(也可以配置爲單播)發現集羣中的其他節點並連接
        有一個會被選成爲管理節點(master node),該節點負責集羣的狀態管理以及在集羣拓步變化時做出反應,分發索引分片到集羣的相應節點上
  • 故障檢測
  • 與es通信
es在內部也使用java api進行節點間的通信
  • 索引數據
建索引只發生在主分片上,而不是副本上,當把一個索引請求發送到某個節點時,如果該節點沒有對應的主分片,那麼這個請求會被轉發到擁有主分片的節點上
  • 查詢數據
  1. 使用各種查詢類型  包括 簡單的詞項查詢,短語查詢,範圍查詢  布爾查詢  模糊查詢  區間查詢  通配符查詢 空間查詢
  2. 組合簡單查詢構建負責查詢
  3. 文檔過濾   在不影響評分的前提下拋棄那些不滿足特定查詢條件的文檔
  4. 查找與特定文檔相似的文檔
  5. 查找特定文檔相似的文檔
  6. 查找特定短語的查詢建議和拼寫查找
  7. 使用切面構建動態導航和計算各種統計量
  8. 使用預搜索(prospective search)並查找與指定文檔匹配的query集合
  • 索引配置








   
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章