mtkr_r
1
お世話になっております。
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
zolgear
2
単純に、title が未設定のdocxファイルであるという事はありませんか?
未設定だとファイル名が表示されます。
fess_config.properties の crawler.metadata.name.mapping
が、インデックスとメタ情報を結びつける設定です。
デフォルトでは、title, Title のメタ情報をインデックスの title に割り当ててあります。
(title=~ を消せば、ファイル名表示になる。)
PDFのタイトルが表示できているそうなので、未変更でしょうか。
docx ファイルからタイトル情報を抽出しているのは、Apache Tika ですが 2.2.1 に上がっています。
ただ、2.2.1 で問題なく title 情報が取得できる事は確認しました。
気になるのは、ファイルクローラーではなく、ウェブクロールを使用している点くらいでしょうか…
mtkr_r
3
@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ファイルは同一のものを使用しています。
zolgear
4
検証お疲れ様です。
わたしの手元でも、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
mtkr_r
5
@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