Elasticsearchソースコード分析——基本概念

5841 ワード

また、elasticsearchの基本概念の理解を先に書いておきましょう.

基本概念


いくつかのブログを参照して、それを考えて、どこまで書きますか.

Node


クラスタはノードごとに構成されており,前回紹介したdata nodeとmaster nodeの区別がある.1つのノードはelasticsearchインスタンスです.注目してymlの構成.例えば簡単なtransport.tcp.port構成、グローバル検索でこのパラメータがどのように登録されているかを見ることができます.自分でプラグインを書くとき、別のパラメータがあれば、パラメータ登録が必要かもしれません.もう一つの注目点は、パラメータ登録時にキーがあることです.Property.NodeScopeは、具体的なタイプを見ると、indexを作成するときにsettingsに配置されているIndexScopeというものもあります.例えばindexです.refresh_interval、これらはindexレベルです.ノードタイプのもう1つはnodeです.ingestは、主に業務転送を担当しています.インタフェースを呼び出すとノードのタイプが表示されます.
curl 127.0.0.1:9200/_cat/nodes?v

ip        heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
127.0.0.1            3          41   5                          mdi       *      JwNql9p

mdi対応はmaster,data,ingest

index


クラス比DBのデータベースでしょう.
curl 127.0.0.1:9200/test
{
    "test": {
        "aliases": {},
        "mappings": {
            "type1": {
                "properties": {
                    "message": {
                        "type": "text"
                    },
                    "post_date": {
                        "type": "text"
                    },
                    "user": {
                        "type": "text"
                    }
                }
            }
        },
        "settings": {
            "index": {
                "creation_date": "1528639332574",
                "number_of_shards": "1",
                "number_of_replicas": "1",
                "uuid": "BrtyOMb8QL2Z01hkgELbdA",
                "version": {
                    "created": "5050199"
                },
                "provided_name": "test"
            }
        }
    }
}

type


クラス比データベースのテーブル{{くらす:でーたべーすのてーぶる}}

mappings


クラス比は、データベース内のフィールドメタデータ定義です.
curl 127.0.0.1:9200/test/_settings
{
    "test": {
        "settings": {
            "index": {
                "creation_date": "1528639332574",
                "number_of_shards": "1",
                "number_of_replicas": "1",
                "uuid": "BrtyOMb8QL2Z01hkgELbdA",
                "version": {
                    "created": "5050199"
                },
                "provided_name": "test"
            }
        }
    }
}

shard


この中でsolrに類比することができて、solrの概念の中ですべてreplicaと呼ばれて、ただreplicaの中で主備を分けました.elasticsearchでは、主はshard、予備はreplicaと呼ばれ、いずれにしても、この論理です.「index.number_of_shards」:1プライマリノードは1つのみで、異なるshardは異なるデータを格納します.「index.number_of_replicas」:1は、プライマリ・ノードにバックアップshardがあり、プライマリ・スタンバイに格納されているデータが一致していることを示します.最終的なコードロジックはいずれもIndexShardに対応する.
curl 127.0.0.1:9200/_cat/shards?v
index shard prirep state      docs store ip        node
test  0     p      STARTED       1 3.6kb 127.0.0.1 JwNql9p
test  0     r      UNASSIGNED