正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

完全一致コードの検索

  • プラン: Premium、Ultimate
  • 提供形態: GitLab.com、GitLab Self-Managed
  • ステータス: 利用制限

この機能は限定提供です。詳細については、エピック9404を参照してください。イシュー420920でフィードバックを提供してください。

完全一致コードの検索を使用すると、完全一致モードと正規表現モードを使用して、GitLab全体または特定のプロジェクト内のコードを検索できます。

完全一致コードの検索はZoektによって提供され、機能が有効になっているグループではデフォルトで使用されます。

前提条件:

  • 完全一致コードの検索を有効にする必要があります:
    • GitLab.comの場合、完全一致コードの検索は有料サブスクリプションでデフォルトで有効になっています。
    • GitLab Self-Managedの場合、管理者はZoektをインストールし、完全一致コードの検索を有効にする必要があります。

完全一致コードの検索を使用するには:

  1. 上部のバーで、検索または移動先を選択します。
  2. 検索ボックスに検索語句を入力します。
  3. 左サイドバーで、コードを選択します。

プロジェクトまたはグループで完全一致コードの検索を使用することもできます。

使用可能なスコープ

スコープは、検索するデータの種類を表します。完全一致コードの検索では、次のスコープを使用できます。

スコープグローバル1 2グループプロジェクト
コードいいえcheck-smcheck-sm

脚注:

  1. 管理者は、グローバル検索のスコープを無効にできます。GitLab 18.6以前では、GitLab Self-Managedでグローバル検索を有効にするには、管理者がzoekt_cross_namespace_search機能フラグも有効にする必要があります。
  2. GitLab.comでは、グローバル検索は有効になっていません。

Zoekt検索API

Zoekt検索APIを使用すると、完全一致コードの検索の検索APIを使用できます。代わりに高度な検索または基本的な検索を使用するには、検索タイプを指定します。

検索モード

GitLabには2つの検索モードがあります。

  • 完全一致モード: クエリに完全に一致する結果を返します。
  • 正規表現モード: 正規表現とブール式をサポートします。

デフォルトでは、完全一致モードが使用されます。正規表現モードに切り替えるには、検索ボックスの右側にある正規表現を使用 regular-expression )を選択します。

構文

次の表は、完全一致モードと正規表現モードのクエリの例を示しています。

クエリ完全一致モード正規表現モード
"foo""foo"foo
foo file:^doc//docで始まるディレクトリ内のfoo/docで始まるディレクトリ内のfoo
"class foo""class foo"class foo
class fooclass fooclassfoo
foo or barfoo or barfooまたはbar
class Fooclass Foo(大文字と小文字を区別)class(大文字と小文字を区別しない)とFoo(大文字と小文字を区別する)
class Foo case:yesclass Foo(大文字と小文字を区別)classFoo(どちらも大文字と小文字を区別)
foo -barfoo -barfooだがbarではない
foo file:jsjsを含む名前のファイル内のfoojsを含む名前のファイル内のfoo
foo -file:testtestを含まない名前のファイル内のfootestを含まない名前のファイル内のfoo
foo lang:rubyRubyのソースコード内のfooRubyのソースコード内のfoo
foo file:\.js$.jsで終わる名前のファイル内のfoo.jsで終わる名前のファイル内のfoo
foo.*barfoo.*bar(リテラル)foo.*bar(正規表現)
sym:fooクラス、メソッド、変数名などのシンボル内のfooクラス、メソッド、変数名などのシンボル内のfoo

既知の問題

  • 20_000トライグラム以下で1 MB未満のファイルのみが検索可能となっています。詳しくは、イシュー455073をご覧ください。
  • プロジェクトのデフォルトブランチのみで、完全一致コードの検索を使用できます。詳しくは、イシュー403307をご覧ください。
  • 1行に複数の一致がある場合、1つの結果としてカウントされます。
  • 改行が正しく表示されない結果に遭遇した場合は、gitlab-zoektをバージョン1.5.0以降に更新してください。