Fess14.5.0でdocxのタイトルがファイル名になる

お世話になっております。

Fess13.16.0(Elasticsearch7.16.2)から
Fess14.5.0(Elasticsearch8.5.1)にアップグレードしたところ、
13.16.0のときは検索結果にdocxファイルのタイトルが表示されていましたが
14.5.0では検索結果にdocxファイルのファイル名(○○.docx)が表示されるようになってしまいました。
(ウェブクロールを使用しています。)

管理者画面の
検索→(何らかの検索をする)→更新ボタンでインデックスの詳細を確認したところ、
13.16.0のtitleはdocxファイルのタイトルが入っていましたが、
14.5.0のtitleはdocxファイルのファイル名(○○.docx)になっていました。

上記のインデックス編集画面から手動でtitleを変更できることは確認できていますが、
件数が多いことと、13.16.0とのきは修正しなくてもtitleにタイトルが入っていたこともあり、
14.5.0でもdocxファイルのタイトルが表示できる方法がありましたら、
ご教示いただけますと幸いです。

なお、PDFについては正常にタイトルが表示されています。

【環境】
OS: Ubuntu 20.04.5 LTS
Docker version 20.10.21
Docker Compose version v2.13.0
fess: 14.5.0
Elasticsearch: 8.5.1

単純に、title が未設定のdocxファイルであるという事はありませんか?
未設定だとファイル名が表示されます。

fess_config.properties の crawler.metadata.name.mapping が、インデックスとメタ情報を結びつける設定です。

デフォルトでは、title, Title のメタ情報をインデックスの title に割り当ててあります。
(title=~ を消せば、ファイル名表示になる。)
PDFのタイトルが表示できているそうなので、未変更でしょうか。

docx ファイルからタイトル情報を抽出しているのは、Apache Tika ですが 2.2.1 に上がっています。
ただ、2.2.1 で問題なく title 情報が取得できる事は確認しました。

気になるのは、ファイルクローラーではなく、ウェブクロールを使用している点くらいでしょうか…

@zolgear

ありがとうございます。

単純に、title が未設定のdocxファイルであるという事はありませんか?

docxファイルのtitleは設定されています。

titleが設定された同一のdocxファイルについて、
・13.16.0→正常に表示されていた
・14.5.0→ファイル名になった
という状態です。

PDFのタイトルが表示できているそうなので、未変更でしょうか。

fess_config.properties の crawler.metadata.name.mappingについては未変更です。

crawler.metadata.name.mapping=\
title=title:string\n\
Title=title:string\n\

crawler.metadata.name.mapping=

に変更するとPDFファイルもファイル名になると思いますが、
(望んでいる挙動からはむしろ遠ざかるのですが、参考までに)
実際に試したところやはりPDFファイルもファイル名になり、
docxファイルもファイル名のままでした。

docx ファイルからタイトル情報を抽出しているのは、Apache Tika ですが 2.2.1 に上がっています。

Apache Tika単体(tika-app-2.2.1.jar)で検証したところ、「dc:title」はタイトルが正常に表示されていました。

旧バージョン(tika-app-1.27.jar)でも「dc:title」はタイトルが正常に表示されていましたが、
「dc:title」とは別に「title」欄もあり、そちらにもタイトルが表示されていました。
(2.2.1には「title」は存在しませんでした。)

気になるのは、ファイルクローラーではなく、ウェブクロールを使用している点くらいでしょうか…

ファイルクローラも試してみましたが、ウェブクローラーと同様にファイル名になりました。

【検証したファイルクロールの設定】
名前:ファイル
パス:file:/etc/fess/
クロール対象とするパス:file:/etc/fess/.*
検索対象とするパス:file:/etc/fess/.*
(他は変更なし)
※「file:/etc/fess/」は、docker-fessコンテナ内の「/etc/fess/」です。
docker-fessコンテナ内の「/etc/fess/」にdocxファイルを入れて検証しました。

なお、ウェブクローラの場合は以下の設定になります。

【ウェブクローラの設定】
名前:デフォルト
URL:https://(サーバ)/doc/test/
クロール対象とするURL:https://(サーバ)/doc/test/.*
検索対象とするURL:https://(サーバ)/doc/test/.*
(他は変更なし)

ファイルクロールの場合とクロール先は違いますが、
クロールするdocxファイルは同一のものを使用しています。

検証お疲れ様です。

わたしの手元でも、Fess 14.5.0 の zip パッケージ版で docx はデフォルトでタイトルがファイル名である事を確認しました。

検証頂いた tika の変更情報をもとに、

crawler.metadata.name.mapping=\
title=title:string\n\
Title=title:string\n\
dc:title=title:string\n\

とした所、14.5 でも タイトルが表示されました!

1 Like

@zolgear

こちらでもfess_config.propertiesのcrawler.metadata.name.mappingを

crawler.metadata.name.mapping=\
title=title:string\n\
Title=title:string\n\

から

crawler.metadata.name.mapping=\
title=title:string\n\
Title=title:string\n\
dc:title=title:string\n\

に変更してみたところ、無事にタイトルが表示されるようになりました!
ありがとうございました!

なお、既にインデックス済のものについてはtitleが上書きされなかったので、
該当ファイルのインデックスを一度消去してから
再度クロールを実施いたしました。

1 Like

すいません、確かにdcが付くような変更が入っていましたね…。次のリリースで修正しておきます。

2 Likes