完全一致コードの検索
- プラン: Premium、Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed
- ステータス: 利用制限
この機能は限定提供です。詳細については、エピック9404を参照してください。イシュー420920でフィードバックを提供してください。
完全一致コードの検索を使用すると、完全一致モードと正規表現モードを使用して、GitLab全体または特定のプロジェクト内のコードを検索できます。
完全一致コードの検索はZoektによって提供され、機能が有効になっているグループではデフォルトで使用されます。
完全一致コードの検索を使用
前提条件:
- 完全一致コードの検索を有効にする必要があります:
- GitLab.comの場合、完全一致コードの検索は有料サブスクリプションでデフォルトで有効になっています。
- GitLab Self-Managedの場合、管理者はZoektをインストールし、完全一致コードの検索を有効にする必要があります。
完全一致コードの検索を使用するには:
- 上部のバーで、検索または移動先を選択します。
- 検索ボックスに検索語句を入力します。
- 左サイドバーで、コードを選択します。
プロジェクトまたはグループで完全一致コードの検索を使用することもできます。
使用可能なスコープ
スコープは、検索するデータの種類を表します。完全一致コードの検索では、次のスコープを使用できます。
| スコープ | グローバル1 2 | グループ | プロジェクト |
|---|---|---|---|
| コード | いいえ |
脚注:
- 管理者は、グローバル検索のスコープを無効にできます。GitLab 18.6以前では、GitLab Self-Managedでグローバル検索を有効にするには、管理者が
zoekt_cross_namespace_search機能フラグも有効にする必要があります。 - GitLab.comでは、グローバル検索は有効になっていません。
Zoekt検索API
Zoekt検索APIを使用すると、完全一致コードの検索の検索APIを使用できます。代わりに高度な検索または基本的な検索を使用するには、検索タイプを指定します。
検索モード
GitLabには2つの検索モードがあります。
- 完全一致モード: クエリに完全に一致する結果を返します。
- 正規表現モード: 正規表現とブール式をサポートします。
デフォルトでは、完全一致モードが使用されます。正規表現モードに切り替えるには、検索ボックスの右側にある正規表現を使用( )を選択します。
構文
次の表は、完全一致モードと正規表現モードのクエリの例を示しています。
| クエリ | 完全一致モード | 正規表現モード |
|---|---|---|
"foo" | "foo" | foo |
foo file:^doc/ | /docで始まるディレクトリ内のfoo | /docで始まるディレクトリ内のfoo |
"class foo" | "class foo" | class foo |
class foo | class foo | classとfoo |
foo or bar | foo or bar | fooまたはbar |
class Foo | class Foo(大文字と小文字を区別) | class(大文字と小文字を区別しない)とFoo(大文字と小文字を区別する) |
class Foo case:yes | class Foo(大文字と小文字を区別) | classとFoo(どちらも大文字と小文字を区別) |
foo -bar | foo -bar | fooだがbarではない |
foo file:js | jsを含む名前のファイル内のfoo | jsを含む名前のファイル内のfoo |
foo -file:test | testを含まない名前のファイル内のfoo | testを含まない名前のファイル内のfoo |
foo lang:ruby | Rubyのソースコード内のfoo | Rubyのソースコード内のfoo |
foo file:\.js$ | .jsで終わる名前のファイル内のfoo | .jsで終わる名前のファイル内のfoo |
foo.*bar | foo.*bar(リテラル) | foo.*bar(正規表現) |
sym:foo | クラス、メソッド、変数名などのシンボル内のfoo | クラス、メソッド、変数名などのシンボル内のfoo |
既知の問題
20_000トライグラム以下で1 MB未満のファイルのみが検索可能となっています。詳しくは、イシュー455073をご覧ください。- プロジェクトのデフォルトブランチのみで、完全一致コードの検索を使用できます。詳しくは、イシュー403307をご覧ください。
- 1行に複数の一致がある場合、1つの結果としてカウントされます。
- 改行が正しく表示されない結果に遭遇した場合は、
gitlab-zoektをバージョン1.5.0以降に更新してください。