elastic search理解
阿新 • • 發佈:2018-11-09
elastic search:
- lucence 搜尋引擎庫
- 節點是一個執行著的elastic search例項
- 叢集是節點的集合
- 面向文件,可以儲存,可以索引每個文件內容
- elastic search叢集包含多個索引,一個索引包含多個型別,一個型別包含多個文件,每個文件包含多個欄位。
- 查詢可以使用query string作為引數,也可是使用請求體,query match
- elastic search可以進行分析,即實現聚合。(多條件查詢語句也不難,使用aggs,聚合可以使用過濾器)
- elastic search致力於隱藏分散式系統的複雜性,一切都是在底層完成的。
- 模糊查詢用的match,精準查詢使用match phrase的。
節點客戶端 加入叢集,不儲存資料,轉發請求到相應節點
傳輸客戶端 不加入叢集,轉發請求給節點
elasticsearch理解:
elastic search索引文件:
- 使用了shell指令碼:
shell指令碼語言:
if [ -f /bin/bash ]
then echo “/bin/bash is a file”
else echo “/bin/bash is NOT a file”
fi - shell指令碼可以直觀在檔案中修改內容,然後再執行檔案。
- es包括settings和mappings
- shard索引分片,在索引建立的時候指定,分成多個分片,構成分散式搜尋
- 索引index:
這個引數可以控制欄位應該怎樣建索引,怎樣查詢。它有以下三個可用值:
no: 不把此欄位新增到索引中,也就是不建索引,此欄位不可查詢
not_analyzed:將欄位的原始值放入索引中,作為一個獨立的term,它是除string欄位以外的所有欄位的預設值。
analyzed:string欄位的預設值,會先進行分析後,再把分析的term結果存入索引中。 - “fielddata”: {“loading”: “eager”},告訴elasticsearch預先載入這個field的內容到記憶體裡,提高查詢效率。