1. 程式人生 > >elastic search理解

elastic search理解

elastic search:

  1. lucence 搜尋引擎庫
  2. 節點是一個執行著的elastic search例項
  3. 叢集是節點的集合
  4. 面向文件,可以儲存,可以索引每個文件內容
  5. elastic search叢集包含多個索引,一個索引包含多個型別,一個型別包含多個文件,每個文件包含多個欄位。
  6. 查詢可以使用query string作為引數,也可是使用請求體,query match
  7. elastic search可以進行分析,即實現聚合。(多條件查詢語句也不難,使用aggs,聚合可以使用過濾器)
  8. elastic search致力於隱藏分散式系統的複雜性,一切都是在底層完成的。
  9. 模糊查詢用的match,精準查詢使用match phrase的。

節點客戶端 加入叢集,不儲存資料,轉發請求到相應節點
傳輸客戶端 不加入叢集,轉發請求給節點

elasticsearch理解:
elastic search索引文件:

  1. 使用了shell指令碼:
    shell指令碼語言:
    if [ -f /bin/bash ]
    then echo “/bin/bash is a file”
    else echo “/bin/bash is NOT a file”
    fi
  2. shell指令碼可以直觀在檔案中修改內容,然後再執行檔案。
  3. es包括settings和mappings
  4. shard索引分片,在索引建立的時候指定,分成多個分片,構成分散式搜尋
  5. 索引index:
    這個引數可以控制欄位應該怎樣建索引,怎樣查詢。它有以下三個可用值:
    no: 不把此欄位新增到索引中,也就是不建索引,此欄位不可查詢
    not_analyzed:將欄位的原始值放入索引中,作為一個獨立的term,它是除string欄位以外的所有欄位的預設值。
    analyzed:string欄位的預設值,會先進行分析後,再把分析的term結果存入索引中。
  6. “fielddata”: {“loading”: “eager”},告訴elasticsearch預先載入這個field的內容到記憶體裡,提高查詢效率。