【ソースコード分析】エラスティックサーチ8.0.0の起動プロセス(3)

この記事では、エラスティック検索の起動プロセスと独自の分析に関連するコンテンツを引き続き紹介します

1.SearchModuleを作成します

クエリ、集計、および提案に関連するモジュール。このモジュールの作成は、いくつかの組み込みの用語、フレーズ、およびその他のクエリメソッドをes自体に登録し、プラグインで提供されるクエリ関連のルールをesに登録することを意味します。

組み込みの強調表示ルールとプラグインで提供される強調表示ルール

プラグインで提供されるいくつかの組み込みのスコアリングルールとハイライトルール

一般的なWildcardQuery、TermQuery、BoolQueryなどのクエリ本体用の組み込みの解析メソッドプラグイン。

フィールドによる並べ替え、地理的距離による並べ替え、スコアによる並べ替えなどの組み込みの並べ替えルール

ヒューリスティック検索に関連するいくつかのルールが組み込まれています

最大、最小、平均、合計など、一部の組み込みアグリゲーター。

組み込みのサブフェーズ分析。クエリフェーズは実際にはesによってフェッチとクエリの2つの主要なフェーズに分割され、ここで参照されるサブフェーズはフェッチフェーズのサブフェーズFetchSubPhaseを指します。

組み込みの形状検索は、地理空間に関連するいくつかの概念です

組み込みの間隔クエリのいくつかのルール

2.ヒューズサービスに関連するCircuitBreakerService

フィールドデータをロードするときに保護的な役割を果たすために、デフォルトの実行方法はHierarchyCircuitBreakerServiceです。

ヒューズで保護される操作や機能には、制限としても理解できる5種類があり、組み込みのボトルネックに達した後はヒューズになります。

具体的な内容は何ですか、いくつか例を挙げましょう

これはリクエストタイプの1つです

 public static final Setting<ByteSizeValue> REQUEST_CIRCUIT_BREAKER_LIMIT_SETTING =
        Setting.memorySizeSetting("indices.breaker.request.limit", "60%", Property.Dynamic, Property.NodeScope);

これらの融合しきい値は、単一のインデックスではなく、クラスター内の単一のノード用です。

3、GatewayModule

このクラスの役割はゲートウェイとは関係ありません。少なくとも、マイクロサービスのゲートウェイとは関係ありません。

DanglingIndicesStateはその一部です。DanglingIndicesは、ノードがクラスターに参加したいが、このノードのデータがクラスターに存在しない場合を指します。主にデータ損失の問題を解決するために、データをインポートする必要があります。最終的な目標は、ノード内のデータをクラスターにインポートすることです。以前にデータが存在しなかった理由については、それは主な関心事ではありません。

もう1つの部分はローカルゲートウェイです。これは、クラスターの状態を保存し、クラスターの再起動時にクラスター全体のノードのデータを共有することを意味します。

4、IndexStorePlugin

各シャードを保存するときは、新しいフォルダーを作成する必要があります

各シャードを保存するときは、シャードの回復に備えるために、新しい回復状態を作成する必要があります。

5.システムインデックスを作成します

全部で9種類

これらのインデックスはシステムの組み込みインデックスに属し、esが対応する中間価格と組み合わせて使用​​された場合にのみ機能することがわかりました。

6、BatchedRerouteService

リクエストリクエストを再ルーティングします。クラスタステータスが変更される理由はたくさんあります。BatchedRerouteServiceの主なアプリケーションシナリオは、マスターノードが再選されることです。

つづく

おすすめ

転載: blog.csdn.net/weixin_39394909/article/details/108426133