我正在學習彈性搜索,但仍然有很多我沒有得到,但有一件事我不明白(或找到所有這些)是什麼時候使用一個索引,以及何時使用更多。其中一部分是我絕對沒有得到什麼,確切地說,彈性搜索索引是。彈性搜索 - 何時使用其他索引?
你能解釋什麼是彈性搜索索引,什麼時候你應該只用一個來存儲所有數據,以及什麼時候應該將數據分成多個索引?
獎勵積分/或者,我該如何判斷何時需要將我的數據拆分爲多個索引,然後,我該如何決定如何在新索引之間拆分數據?
我正在學習彈性搜索,但仍然有很多我沒有得到,但有一件事我不明白(或找到所有這些)是什麼時候使用一個索引,以及何時使用更多。其中一部分是我絕對沒有得到什麼,確切地說,彈性搜索索引是。彈性搜索 - 何時使用其他索引?
你能解釋什麼是彈性搜索索引,什麼時候你應該只用一個來存儲所有數據,以及什麼時候應該將數據分成多個索引?
獎勵積分/或者,我該如何判斷何時需要將我的數據拆分爲多個索引,然後,我該如何決定如何在新索引之間拆分數據?
您可以將其視爲SQL數據庫中的模式。
模式可以有許多表。索引可以有多種類型。
很酷的是,可以在一個請求中對多個索引進行搜索。
如果沒有關於用例的任何信息,很難告訴您更多信息。 這取決於很多因素:你需要在一段時間後刪除一些數據(比方說每年)?您將索引多少個文檔以及文檔的大小是多少?
例如,假設您要索引日誌並保持3個月的日誌。基本上每個月會創建一個索引,並在3個當前月份的頂部創建一個別名。
當一個月結束時,爲新月份創建新索引,修改別名並刪除舊索引。刪除索引是有效的性能和磁盤空間明智!
所以基本上在這種情況下,我會建議使用多個索引。
想象一下另一種情況。假設你正在推出一款遊戲,而且你不知道你是否會成功。因此,從只有一個分片的index1開始,並在其上創建一個別名索引。您啓動遊戲並發現隨着響應時間急劇增加,您將需要更多功率(更多機器)。用兩個分片創建一個新索引index2並將其添加到您的別名索引。
這種方式可以輕鬆地擴展。
這裏的關鍵是恕我直言的別名。在項目開始時使用別名進行搜索。它將在未來幫助你很多。
另一個用例可能是您正在爲不同的客戶工作。客戶不希望將他們的數據與其他客戶混合在一起。那麼您可能需要在這種情況下爲每個客戶創建一個索引?
事實是,elasticsearch非常靈活,可以幫助您根據需要設計您的架構。
希望這會有所幫助。
elasticsearch
中最大的單個數據單元是index
。索引是elasticsearch中文檔的邏輯和物理分區。
Elasticsearch indexes
與關係世界中的database
抽象最相似。elasticsearch index
是單個正在運行的服務器實例中的完全分區的Universe。文檔和類型映射的範圍爲index
,因此可以安全地在indexes
之間重新使用名稱和ID。索引也有自己的設置羣集複製,分片,自定義文本分析,以及許多其他問題。
謝謝!您是否可以詳細瞭解何時需要跨多個索引分割數據,即使數據具有相同的模式? – Narfanator
您不能將數據拆分爲多個索引。索引分爲多個分片,您可以在配置文件中定義索引的分片數量。 – Roopendra
[請參閱此論壇](http://elasticsearch-users.115913.n3.nabble.com/increasing-shards-and-then-nodes-td2288848.html#a2289760)。這可能有助於瞭解何時應增加碎片和節點 – Roopendra
指數是ElasticSearch的主要數據存儲單元。
有幾種類型的數據存儲技術:
分區: 比方說你有一個不斷增長的和不斷增長的永不停歇的索引。 (即fb/twitter數據或任何類型的日誌記錄)。將這些類型的數據分區數據存儲到多個索引中的最佳方法。通常的做法是使用時間間隔。時間間隔可能不同。它可能是每月,每週,每天。然後,當您獲取新數據時,請檢查時間戳並移至相應的索引。
無分區: 如果您的索引增長速度不快,您可以使用單一索引。這對小桌子很有用。
有許多方法可以管理您在探索Elastic Search時可以學習的數據。
我想這聽起來很像是,每個類型是表格,但仍然無法幫助我決定什麼時候有一個以上的意思,因爲我幾乎從不決定在單個數據庫中擁有多組表。 – Narfanator
答覆已更新。 – dadoonet
謝謝!這是我一直在尋找的信息。 – Narfanator