Fessのコード検索で引用語・ファイルリンク・Rust分類を見直す

Fessのコード検索で、引用符付きの単語にも曖昧検索が加わる問題、特殊文字入りのファイルへのリンク、Rustの言語分類を直すPRが提案されています。

単語を引用符で囲んだときの検索

通常の検索ではquery.boost.fuzzy.min.lengthの初期値4以上の長さの語に、暗黙の曖昧検索が加わります。PR #3670は、デフォルトフィールドの単語を引用符で囲んだ場合、1語のフレーズとして扱って、この曖昧検索を加えない修正です。新しい設定を有効化する手順はありません。

たとえばlessと「”less”」を比較します。PRでは、修正前の「”less”」でfessだけを含む文書もヒットした例が報告されています。修正後も解析器による正規化は受けるため、元ファイルとのバイト単位の完全一致を保証する検索ではありません。

引用符なしの語、content:”x”などのフィールド指定、複数語フレーズは今回の変更対象ではありません。allintitle/allinurlの1語フレーズには既存の制限が残り、デフォルトフィールドの「”fess*”」は従来の前方一致から文字列のフレーズ扱いへ変わる点にも注意します。

特殊文字入りのファイルと離れた行の表示

codesearchテーマのPR #86では「リポジトリで開く」リンクのパスを区切りごとにURLエンコードします。たとえばdir/a b#c%d.mdをdir/a%20b%23c%25d.mdへ変換し、#や?、%で別のファイルを開いてしまうことを避けます。リンク先は引き続き/blob/HEAD/で、検索時のコミットを固定する機能ではありません。

また、L3の断片とL42の断片が「…L42:」で連結されている場合、後者を別行と行番号で表示します。行番号が続かない通常の「…」は残します。文書の抽出方法を変える修正ではありません。

PRのテーマは15.10.1、最小Fessバージョンは15.10です。Fess 15.9へそのまま導入する説明にはしません。修正を含むソースで./scripts/package.sh codesearchを実行し、対応するFessの管理画面「テーマ」でZIPをアップロードして選択します。配布ZIPが公開済みとは確認していません。

Rustの分類は設定反映と再クロールが必要

docker-codesearchのPR #15はconf/fess_config.overlay.propertiesのindex.filetypeにapplication/rls-services+xml=rustを加える提案です。TikaがこのMIMEタイプと判定する.rsファイルを、従来のothersからrustへ分類し、言語ファセットとfiletype:rustで探せるようにします。本文抽出は変わりません。

既存の文書は再クロールするまでothersのままです。環境の実効設定にマッピングが反映されたことを確認してから対象リポジトリを再クロールし、filetype:rustで確認します。保存済み文書を移すだけの再インデックスで再分類されたとは判断しません。

以前のpath絞り込みとJavaScript・YAML分類の記事とは、検索の一致条件・結果リンク・Rust分類が今回の違いです。

関連PR

コメントを残す

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です