<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                >[info] elasticsearch的概念 | Relational DB | Elasticsearch | | --- | --- | | 數據庫(database) | 索引(indices) | | 表(tables) | 類型(types) | | 行(rows) | 文檔(documents) | | 字段(columns) | 字段(fields) | elasticsearch(集群)中可以包含多個索引(數據庫),每個索引中可以包含多個類型(表),每個類型下又包 含多 個文檔(行),每個文檔中又包含多個字段(列)。 ***** >[info] 物理設計 elasticsearch 在后臺把每個索引劃分成多個分片,每分分片可以在集群中的不同服務器間遷移 一個人就是 一個集群!默認的集群名稱就是 elaticsearch。 ![](https://img.kancloud.cn/ce/bc/cebc48c7ac046a29802437f7673f24b0_513x343.png) >[info] 邏輯設計 一個索引類型中,包含多個文檔,比如說文檔1,文檔2。 當我們索引一篇文檔時,可以通過這樣的一各 順 序找到 它: 索引 ? 類型 ? 文檔ID ,通過這個組合我們就能索引到某個具體的文檔。 注意:ID不必是整 數, 實際上它是個字符串。 ***** **文檔:** 就是我們的一條條數據 ``` user 1 zhangsan 18 2 kuangshen 3 ``` 之前說elasticsearch是面向文檔的,那么就意味著索引和搜索數據的最小單位是文檔,elasticsearch 中,文 檔有幾個 重要屬性 : * 自我包含,一篇文檔同時包含字段和對應的值,也就是同時包含 key:value! * 可以是層次型的,一個文檔中包含自文檔,復雜的邏輯實體就是這么來的! {就是一個json對象! fastjson進行自動轉換!} * 靈活的結構,文檔不依賴預先定義的模式,我們知道關系型數據庫中,要提前定義字段才能使用, 在 elasticsearch中,對于字段是非常靈活的,有時候,我們可以忽略該字段,或者動態的添加一個 新的字 段。 盡管我們可以隨意的新增或者忽略某個字段,但是,每個字段的類型非常重要,比如一個年齡字段類 型, 可以是字符 串也可以是整形。因為elasticsearch會保存字段和類型之間的映射及其他的設置。這種 映射具 體到每個映射的每種類型,這也是為什么在elasticsearch中,類型有時候也稱為映射類型。 ***** >[info] 索引(就是數據庫!) 索引是映射類型的容器,elasticsearch中的索引是一個非常大的文檔集合。索引存儲了映射類型的字段 和其 他設置。 然后它們被存儲到了各個分片上了。 我們來研究下分片是如何工作的。 ***** **物理設計 :節點和分片 如何工作** ![](https://img.kancloud.cn/c4/8a/c48a817c6744262ee55b5ea22d9974e7_1178x365.png) 一個集群至少有一個節點,而一個節點就是一個elasricsearch進程,節點可以有多個索引默認的,如果 你創 建索引,那么索引將會有個5個分片 ( primary shard ,又稱主分片 ) 構成的,每一個主分片會有一個 副本 ( replica shard ,又稱復制分片 ) ![](https://img.kancloud.cn/9c/43/9c436e69ea0bfd43089042d466cafe9d_1181x411.png) 上圖是一個有3個節點的集群,可以看到主分片和對應的復制分片都不會在同一個節點內,這樣有利于某 個 節點掛掉 了,數據也不至于丟失。 實際上,一個分片是一個Lucene索引,一個包含倒排索引的文件 目 錄,倒排索引的結構使 得elasticsearch在不掃描全部文檔的情況下,就能告訴你哪些文檔包含特定的 關鍵 字。 不過,等等,倒排索引是什么鬼? ***** >[info] 倒排索引 elasticsearch使用的是一種稱為倒排索引的結構,采用Lucene倒排索作為底層。這種結構適用于快速的 全文 搜索, 一個索引由文檔中所有不重復的列表構成,對于每一個詞,都有一個包含它的文檔列表。 ***** 比如我們通過博客標簽來搜索博客文章。那么倒排索引列表就是這樣的一個結構 : ![](https://img.kancloud.cn/85/7c/857c506f7a1fcd5fdb840a82de5c00e4_1179x359.png) 如果要搜索含有 python 標簽的文章,那相對于查找所有原始數據而言,查找倒排索引后的數據將會快 的 多。只需要 查看標簽這一欄,然后獲取相關的文章ID即可。完全過濾掉無關的所有數據,提高效率! ***** >[info] elasticsearch的索引和Lucene的索引對比 在elasticsearch中, 索引 (庫)這個詞被頻繁使用,這就是術語的使用。 在elasticsearch中,索引被 分為 多個分片,每份 分片是一個Lucene的索引。所以一個elasticsearch索引是由多個Lucene索引組成 的。別問 為什么,誰讓elasticsearch使用Lucene作為底層呢! 如無特指,說起索引都是指elasticsearch 的索引。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看