高度な検索

13.9でGitLab Premiumに移行しました。

GitLabインスタンス全体でより高速で効率的な検索を行うために、高度な検索を使用することができます。高度な検索はElasticsearchをベースにしています。Elasticsearchは専用のフルテキスト検索エンジンで、水平方向に拡張することができ、ほとんどの場合1秒で結果を得ることができます。

すべてのプロジェクトで更新したいコードを一度に見つけることができ、メンテナンスの時間を節約し、インナーソースを促進します。

詳細検索は

  • プロジェクト
  • イシュー
  • マージリクエスト
  • マイルストーン
  • ユーザー
  • エピック(グループのみ)
  • コード
  • コメント
  • コミット
  • プロジェクトとグループのWiki
  • GitLab.comでは、有料のサブスクリプションを持つグループでは高度な検索が有効になります。
  • セルフマネジメントのGitLabインスタンスでは、管理者が高度な検索を有効にする必要があります。

構文

高度な検索ではElasticsearch の構文を使用します。この構文は厳密検索クエリとあいまい検索クエリの両方をサポートしています。

構文説明物件例
"正確な検索"gem sidekiq"
~あいまい検索J~ Doe
|またはディスプレイ|バナー
+そしてdisplay +banner
-除外display -banner
*一部bug error 50*
\エスケープ\*md
#Issue ID#23456
!マージリクエストID!23456

GitLab 15.10で導入されたユーザー検索の絞り込み機能。

ユーザーを検索する際、デフォルトではファジーなクエリが使用されます。Elasticsearchの構文でユーザーを絞り込むことができます。

構文説明物件例
filename:ファイル名filename:*spec.rb
path:リポジトリの場所1 path:spec/workers/
extension:ファイル拡張子(. を除く) 2 extension:js
blob:Git オブジェクト ID2 blob:998707*
  1. path: はフルパスあるいは部分パスのマッチを返します。
  2. extension:blob: は完全一致のみを返します。

使用例

クエリ説明
rails -filename:gemfile.lock gemfile.lock ファイルを除くすべてのファイルのrails を返します。
RSpec.describe Resolvers -*builder builder で始まらないRSpec.describe Resolvers を返します。
バグ bug またはdisplaybanner の両方を返します。
ヘルパー -extension:yml -extension:js拡張子が.yml あるいは.js のファイルを除くすべてのファイルでhelper を返します。
ヘルパーのパス:lib/git lib/git* のパス(たとえば、spec/lib/gitlab )を持つすべてのファイルでhelper を返します。

既知のイシュー

  • 1MB未満のファイルしか検索できません。詳細については、イシュー195764 を参照してください。セルフマネージド GitLab インスタンスでは、管理者がこの設定を行うことができます。
  • プロジェクトのデフォルトブランチでのみ、高度な検索を使用できます。詳しくは、イシュー229966 をご覧ください。
  • 検索クエリには、以下の文字を含めることはできません:

     . , : ; / ` ' = ? $ & ^ | < > ( ) { } [ ] @
    

    詳細については、イシュー325234を参照してください。

  • 検索結果は、ファイル内の最初の一致だけを表示します。詳しくは、イシュー668 を参照してください。