Elasticsearchのソースコード分析-ソースコードのコンパイル



Elasticsearch Source Code Analysis Source Code Compilation



ソースコードを分析するには、まずコンパイルと実行環境を構築することから始める必要があります
以前は、solrが頻繁に使用されていましたが、solrに限定して動的拡張を実行できませんでしたが、現在はelasticsearchに切り替えています

事業 バージョン
動作環境 ウィンドウズ
ここに intellij 2018.1.4
JDK 1.8.0_171
elasticsearch 5.5.1
gradle 4.3
Maven 3.5.0はいつでも利用可能です

備考:1.8.0_25は以前に使用されていましたが、コンパイルすると、このバージョンのバグであると直接言われ、コンパイルは成功しません。 OK。
最初の連絡先はes5.5.1バージョンでした。 6.2.3を使うことを考えましたが、コンパイルするときにたくさんの問題があります。 JDKには9つ以上が必要です。5.5.1バージョンを使用するだけです。



esバージョンが異なればgradleの要件も異なります

Mavenソース

Aliは、国内のMavenソースに引き続き非常に役立ちます。
build.gradleファイルのすべてのプロジェクトにリポジトリを追加します



allprojects { repositories { maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' } } }

コンパイル

gradle clean gradle idea gradle run

予期しないことがない場合は、実行が完了するのを待つだけで、distribution build cluster run node0 elasticsearch-5.5.1-SNAPSHOTなどのソースディレクトリに生成されます。
前のgradleがインストールされている場合は、IDEを開き、ソースコードディレクトリをインポートします。

パラメータ設定を開始します

VM options configuration -Des.path.home = 'E:Projectses-6.2.3sourceelasticsearch-5.5.1distributionuildcluster un node0elasticsearch-5.5.1-SNAPSHOT' -Dlog4j2.disable.jmx=true Main class: org.elasticsearch.bootstrap.Elasticsearch

6.2.3まだconfigディレクトリを設定する必要があるようです

* org.elasticsearch.bootstrap.Elasticsearchはスタートアップエントリです。ソースコード分析から、esを初期化する方法をここで見ることができます。ノードの読み込み、Guiceインジェクション*




前に書かれた言葉

  1. Java 8の関数式をよく理解して、ラムダ、関数参照、および基本的なジェネリックを考えてください。
  2. Elasticsearchは非同期フレームワークであるため、特定の準備をしてください
  3. 多くの場合、URL登録メソッドはメッセージを相互に渡すために使用されます。この知識の後、いくつかのロジックは簡単に整理できます
  4. lucene docvalue、列ストレージ、クエリロジックについてある程度理解している必要があります
  5. 今はそんなに思う