一、Elasticsearch介紹
Elasticsearch是一個開源的分布式、RESTful 風格的搜索和資料分析引擎,它的底層是開源庫Apache Lucene,
Lucene 可以說是當下最先進、高性能、全功能的搜索引擎庫——無論是開源還是私有,但它也僅僅只是一個庫,為了充分發揮其功能,你需要使用 Java 并將 Lucene 直接集成到應用程式中, 更糟糕的是,您可能需要獲得資訊檢索學位才能了解其作業原理,因為Lucene 非常復雜,
??為了解決Lucene使用時的繁復性,于是Elasticsearch便應運而生,它使用 Java 撰寫,內部采用 Lucene 做索引與搜索,但是它的目標是使全文檢索變得更簡單,簡單來說,就是對Lucene 做了一層封裝,它提供了一套簡單一致的 RESTful API 來幫助我們實作存盤和檢索,
當然,Elasticsearch 不僅僅是 Lucene,并且也不僅僅只是一個全文搜索引擎, 它可以被下面這樣準確地形容:
- 一個分布式的實時檔案存盤,每個欄位可以被索引與搜索;
- 一個分布式實時分析搜索引擎;
- 能勝任上百個服務節點的擴展,并支持 PB 級別的結構化或者非結構化資料,
由于Elasticsearch的功能強大和使用簡單,維基百科、衛報、Stack Overflow、GitHub等都紛紛采用它來做搜索,現在,Elasticsearch已成為全文搜索領域的主流軟體之一,
二、應用場景
這里有一些使用Elasticsearch的用例:
- 你經營一個網上商店,你允許你的顧客搜索你賣的產品,在這種情況下,您可以使用Elasticsearch來存盤整個產品目錄和庫存,并為它們提供搜索和自動完成建議,
- 你希望收集日志或事務資料,并希望分析和挖掘這些資料,以查找趨勢、統計、匯總或例外,在這種情況下,你可以使用loghide (Elasticsearch/ loghide /Kibana堆疊的一部分)來收集、聚合和決議資料,然后讓loghide將這些資料輸入到Elasticsearch中,一旦資料在Elasticsearch中,你就可以運行搜索和聚合來挖掘你感興趣的任何資訊,
- 你運行一個價格警報平臺,允許精通價格的客戶指定如下規則:“我有興趣購買特定的電子設備,如果下個月任何供應商的產品價格低于X美元,我希望得到通知”,在這種情況下,你可以抓取供應商的價格,將它們推入到Elasticsearch中,并使用其反向搜索(Percolator)功能來匹配價格走勢與客戶查詢,并最終在找到匹配后將警報推送給客戶,
- 你有分析/業務智能需求,并希望快速調查、分析、可視化,并對大量資料提出特別問題(想想數百萬或數十億的記錄),在這種情況下,你可以使用Elasticsearch來存盤資料,然后使用Kibana (Elasticsearch/ loghide /Kibana堆疊的一部分)來構建自定義儀表板,以可視化對您來說很重要的資料的各個方面,此外,還可以使用Elasticsearch聚合功能對資料執行復雜的業務智能查詢,
三、安裝并運行Elasticsearch
你可以從 elastic 的官網 elastic.co/downloads/elasticsearch 獲取最新版本的Elasticsearch,解壓檔案后,按照下面的操作,即可在前臺(foregroud)啟動 Elasticsearch:

下載完成后解壓,執行命令:elasticsearch,出現錯誤:

解決方法:
1.創建es用戶組及es用戶:
2.更改es檔案夾及內部檔案的所屬用戶及組為es:es
![]()
3.切換到es用戶再啟動
檢查Elasticsearch是否正在運行:

上面代碼中,請求9200埠,Elastic 回傳一個 JSON 物件,包含當前節點、集群、版本等資訊,
按下 Ctrl + C,Elastic 就會停止運行,
四、配置遠程訪問
默認情況下,Elastic 只允許本機訪問,如果需要遠程訪問,可以修改 Elastic 安裝目錄的config/elasticsearch.yml檔案,去掉network.host的注釋,將它的值改成0.0.0.0,然后重新啟動 Elastic,

上面代碼中,設成0.0.0.0讓任何人都可以訪問,線上服務不要這樣設定,要設成具體的 IP,啟動報錯:

提示必須設定seed_providers、Initial_master_nodes,修改elasticsearch.yml檔案中的下面兩個地方:


啟動報錯:
- 用戶[es]的最大執行緒數[2981]過低,至少增加到[4096]
- 最大虛擬記憶體區域vm, Max_map_count[65530]過低,至少增加到[262144]

修改/etc/security/limits.conf檔案,在末尾添加:
修改/etc/sysctl.conf,使用sysctl -p 查看:


修改完之后重新啟動生效生效,然后訪問服務器地址:http://linux地址:9200/

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/321144.html
標籤:其他
