FessのSharePointクロールで除外設定と空白入りURLを確認する

FessのSharePointデータストアで、除外した文書ライブラリーが検索対象に残る問題と、名前に空白があるリストなどを検索結果から開くと404になる問題の修正がマージされました。利用中のクロール設定を見直すときに、確認したい点をまとめます。

除外したライブラリーがリストとして取り込まれる問題

SharePointの文書ライブラリーは、フォルダー一覧だけでなくリスト一覧にも現れます。従来はsite.exclude_folderでフォルダーとしてのクロールを止めても、同じライブラリーをリスト側から処理してしまう場合がありました。Shared Documentsを除外した場合も、予備の探索経路で再び対象になる問題がありました。

修正後は、列挙された最上位フォルダーを除外対象も含めて覚えておき、リスト側からの重複取り込みを防ぎます。

たとえば、既存のデータストア設定のパラメーター欄に、対象ライブラリー名に合わせて次を指定します。

site.exclude_folder=Library2

この設定の初期値は未指定で、利用者が追加する除外条件はありません。組み込みの除外対象は別にあります。値は最上位フォルダーのタイトルに対する正規表現で、複数指定はカンマ区切りです。完全一致を意図するなら、^Library2$のように明示できます。正規表現の記号を含む名前は適切にエスケープしてください。

適用されるのはサイト全体をクロールする場合です。site.list_id、site.list_name、site.doclib_pathで単一リストや文書ライブラリーを指定するモードの除外設定にはなりません。修正対象も、フォルダー一覧に現れるライブラリーの再取り込みであり、すべてのリストを名前で除外する新機能ではありません。

設定を保存して修正を含むプラグインでクロールした後は、除外対象の文書が検索結果に残っていないか確認します。この修正だけで既存インデックスの文書が即時削除されるわけではないため、古い文書の削除処理が実行される設定と範囲も確認してください。クロール除外はSharePoint側のアクセス権設定の代わりにはなりません。

名前に空白があるリストを開けない問題

検索対象のURLに空白があると、検索結果から移動する際に空白が+へ変わり、別のパスとして扱われる場合がありました。たとえば次のURLです。

修正前: /sites/site1/Lists/Blank+list/DispForm.aspx?ID=2
修正後: /sites/site1/Lists/Blank%20list/DispForm.aspx?ID=2

15.9.x向けのSharePointプラグインでは、表示フォームURLの空白を%20として登録します。リスト項目、ライブラリーファイル、項目の添付ファイルが共有する処理の修正で、追加の有効化設定はありません。空白のないURLや、文字としての+は変えません。

空白入りURLは登録される値が変わるため、文書IDも変わります。次回クロールで新しい文書として取り込まれ、旧URLの文書は古い文書の削除工程で片付ける必要があります。更新直後は、新旧文書の重複とリンク先を確認してください。

15.10向けの開発ブランチでは、Fess本体のリダイレクト時のエンコードを修正しています。こちらはパスマッピングのfunction:encodeUrlにも適用されます。15.9.xのプラグインで登録URLを変える対応とは適用箇所が異なるため、利用するFessとプラグインの系列をそろえて確認してください。

関連PR

コメントを残す

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