正確なコード検索
GitLab 15.9で導入され 、
index_code_with_zoekt
というフラグがインデックス作成に、search_code_with_zoekt
というフラグが検索に使われます。どちらもデフォルトでは無効になっています。
正確なコード検索機能については、現在もアクティビティで変更を行っています。GitLabはまずこれをドッグフード化し、GitLab.comでアクセスをリクエストした特定の顧客だけにロールアウトする予定です。GitLab.comの顧客が試用できるようになったらアナウンスします。Exact Code Search機能のロードマップを確認することで、開発者の進捗を追うことができます。セルフマネジメントのGitLabでは、この機能を有効にすることは技術的には可能ですが、GitLabは開発のステージではサポートやドキュメントを提供しておらず、大規模なテストも広く行われていません。また、多くの既知の制限があります。
使用方法
GitLabでコード検索を行う際、プロジェクトが有効なグループに属している場合、Zoektによる“正確なコード検索 “が選択されます。
Zoektとadvanced searchの主な違いは、Zoektが部分文字列の完全一致を提供することと、正規表現を検索できることです。正規表現での検索が可能なため、特定の特殊文字はエスケープする必要があります。バックスラッシュは特殊文字をエスケープし、二重引用符で囲むとフレーズ検索に使用できます。
構文
この表は、正確なコード検索のためのクエリの例を示しています。
クエリ | 説明 |
---|---|
foo | を含むファイルを返します。foo
|
"class foo" | 正確な文字列を含むファイルを返します。class foo
|
class foo |
class とfoo
|
foo or bar |
foo またはbar
|
class Foo |
class (大文字小文字を区別しない) およびFoo (大文字小文字を区別する) を含むファイルを返します。 |
class Foo case:yes |
class とFoo を含むファイルを返します(両方とも大文字と小文字を区別します)。 |
foo -bar |
foo を含み、以下を含まないファイルを返します。bar
|
foo file:js | を含む名前のファイルからfoo を検索します。js
|
foo -file:test | を含まない名前のファイルでfoo を検索。test
|
foo lang:ruby | Ruby のソースコードからfoo を検索します。 |
foo f:\.js$ | で終わる名前のファイルからfoo を検索します。.js
|
foo.*bar | 正規表現にマッチする文字列を検索します。foo.*bar
|