GitHub Enterprise Server
の検索について
ユーザーはインスタンスを検索して、GitHub Enterprise Server の問題、pull request、コード、およびその他のコンテンツを検索、移動、および理解できます。 Elasticsearch を使用すると、インスタンスの検索機能が有効になります。 Elasticsearch の現在の状態を表示したり、検索とインデックス作成の動作を制御したりできます。
GitHub Enterprise Server の検索について詳しくは、「GitHub での検索に関するドキュメント」をご覧ください。 Elasticsearch の詳細については、「Elasticsearch の Web サイト」をご覧ください。
インデックスの管理について
GitHub Enterprise Server では、次のような検索インデックスの状態をインスタンス上のデータと自動的かつ定期的に照合して調整します。
- データベース内の問題、プル要求、リポジトリ、およびユーザー
- ディスク上の Git リポジトリ (ソース コード)
通常の使用では、企業の所有者は新しいインデックスを作成したり、修復ジョブをスケジュールしたりする必要はありません。 トラブルシューティングやその他のサポート目的で、GitHub Support から修復ジョブの実行を指示される場合があります。
検索インデックスの表示
- 任意のページの右上で をクリックします。
- 左側のサイドバーで、[インデックスの検索] をクリックします。
- [インデックス管理] で、表示する検索インデックスをクリックします。
新しい検索インデックスの作成
-
任意のページの右上で をクリックします。
-
左側のサイドバーで、[インデックスの検索] をクリックします。
-
[インデックス管理] の横にある [新しいインデックスの作成] をクリックします。
-
[作成するインデックスの選択] ドロップダウンを選択し、作成する検索インデックスをクリックします。
-
インデックスを検索可能にする場合は、[このインデックスを検索可能にする] チェックボックスを選択します。
-
インデックスを書き込み可能にする場合は、[このインデックスを書き込み可能にする] チェックボックスを選択します。
-
[インデックスの作成] をクリックします。
-
インスタンスで高可用性またはクラスター構成を使用している場合は、インスタンス全体で検索インデックスの数が必ず正しく構成されるようにスクリプトを実行する必要があります。
SSH 経由でプライマリ アプライアンスの管理シェルにアクセスし、次のいずれかのコマンドを実行します。
高可用性構成の場合:
Shell /usr/local/share/enterprise/ghe-es-auto-expand -v 0-all
/usr/local/share/enterprise/ghe-es-auto-expand -v 0-all
クラスター構成の場合:
Shell /usr/local/share/enterprise/ghe-es-auto-expand -v 0-1
/usr/local/share/enterprise/ghe-es-auto-expand -v 0-1
「管理シェル (SSH) にアクセスする」をご覧ください。
検索インデックスの管理
サイト管理者ダッシュボードで既存の検索インデックスを表示すると、次のアクションを実行できます。
- インデックスを検索可能にする。
- インデックスを書き込み可能にする。
- インデックスを更新する。
- インデックスを削除します。
- インデックスの修復状態をリセットする。
- 新規インデックス修理ジョブを開始する。
- インデックスの修理ジョブを有効または無効にする。
コード検索の管理
ソースコードに対する検索とインデックスの作業を有効または無効にすることができます。 コード検索について詳しくは、「コードの検索」をご覧ください。
- 任意のページの右上で をクリックします。
- 左側のサイドバーで、[インデックスの検索] をクリックします。
- [コード検索] セクションで、[検索] または [インデックス作成] の横にある [有効] または [無効] をクリックします。
検索インデックスの修復
ご利用のインスタンスでは修復ジョブを使用してデータを調整し、次のイベントが発生した場合にバックグラウンドで修復ジョブをスケジュールします。
- 新規検索インデックスが作成される。
- 欠損データを埋め戻ししなければいけない場合。
- 古い検索データを更新しなければいけない場合。
検索インデックスの [修復] セクションにあるプログレス バーには、バックグラウンド ワーカーにまたがる修理ジョブの現在の状態が表示されます。 修復ジョブが完了したら、プログレス バーに表示される値は無視できます。 進行状況バーには、修復オフセットとデータベース内の最大レコード ID の差が示されます。その値は、たとえリポジトリが実際にインデックス付けされていても、お使いの GitHub Enterprise Server インスタンス にリポジトリが追加されるにつれて減少します。
I/O パフォーマンスに与える影響を最小限にするため、および、オペレーションがタイムアウトする可能性を低く抑えるために、混雑していない時間帯に修理ジョブを実行してください。 ジョブによって検索インデックスをデータベースおよび Git リポジトリ データと照合して調整する場合、使用される CPU は 1 つです。 top
のようなユーティリティを使用して、システムの負荷平均と CPU 使用率を監視します。 リソース消費の大幅な増加が示されていない場合は、ピーク時間帯にインデックス修復ジョブを実行しても問題ありません。
修理ジョブでは、並列化のために "修理オフセット" が使用されます。 これは照合されているレコードのデータベーステーブルへのオフセットです。 このオフセットによって、複数の背景ジョブの作業を同期化できます。