discuss
1
(from osdn.net/users/xylitol)
お世話になっております。
Officeファイル(Word,Excel,PPTなど)のタイトル情報(DocumentPropertiesのTitle)を
取得し、検索結果に表示しようとしております。
PDFに関しては過去のスレッド(https://sourceforge.jp/projects/fess/forums/18580/35753/73936/)
にあり対応できましたが、Officeファイルについての取得方法がわかりません。
ご教授頂いてよろしいでしょうか。
こちらのスレッドと同じく、商用サポートのカスタマイズ開発が必要でしょうか。
よろしくお願いいたします。
discuss
2
(from osdn.net/users/shinsuke)
s2robot_transformer.dicon でコメントアウトしてある
"Author"
"author_t"
のように指定していただければ良いと思います。
上記の場合は著者情報をauthor_tに格納しています。
たとえば、Titleをtitle_tなどにマップして、title_tを
検索結果の表示項目に指定してもらえば良いと思います。
discuss
3
(from osdn.net/users/xylitol)
[メッセージ #75043 への返信]
返信ありがとうございます。
s2robot_transformer.diconの、「fessFileTransformer」「fessTikaTransformer」にて、
addMetaContentMappingを追加し、Author、Titleをセットし確認しましたが、PDFのメタデータしか
取得できていないように思います。PDFの場合はAuthor、Titleの両方ともに取得できています。
恐縮ですが、ExcelやWordの場合のメタデータを設定する方法をご教授頂いてもよろしいでしょうか。
現在、3ファイルについて、以下のような設定をしております。
・s2robot_transformer.dicon(抜粋)
<component name="fessFileTransformer" class="jp.sf.fess.transformer.FessFileTransformer" instance="singleton">
<property name="name">"fessFileTransformer"</property>
<property name="ignoreEmptyContent">true</property>
<property name="replaceSiteEncodingWhenEnglish">true</property>
<property name="siteEncoding">"UTF-8"</property>
<initMethod name="addMetaContentMapping"> ←※追加
<arg>"Author"</arg>
<arg>"author_t"</arg>
</initMethod>
<initMethod name="addMetaContentMapping"> ←※追加
<arg>"Title"</arg>
<arg>"title_s"</arg>
</initMethod>
</component>
<component name="fessTikaTransformer" class="jp.sf.fess.transformer.FessTikaTransformer" instance="singleton">
<property name="name">"fessTikaTransformer"</property>
<property name="ignoreEmptyContent">true</property>
<property name="replaceSiteEncodingWhenEnglish">true</property>
<property name="siteEncoding">"UTF-8"</property>
<initMethod name="addMetaContentMapping"> ←※追加
<arg>"Title"</arg>
<arg>"title_aa"</arg>
</initMethod>
<!--
<initMethod name="addMetaContentMapping"> ←※エラーとなってしまったのでコメントアウトしています。
<arg>"Author"</arg>
<arg>"author_aa"</arg>
</initMethod>
-->
</component>
・app.dicon(抜粋)
<property name="responseFields">new String[]{ "id", "docId", "score",
"boost", "contentLength", "host", "site", "lastModified",
"mimetype", "filetype_s", "created", "digest", "url",
"clickCount_l_x_dv", "favoriteCount_l_x_dv",
"cid_s_s", "lang_s", "hasCache_s_s",
"author_t", "title_s", "title_aa"} ←※3項目追加
</property>
・searchResults.jsp(抜粋)
<c:forEach var=“doc” varStatus=“s” items="${documentItems}">
・・・(略)
title_s:[${f:h(doc.title_s)}] ←※PDFの場合はタイトル情報が表示されます。Excel、Wordでは表示されません。
author_t:[${f:h(doc.author_t)}] ←※PDFの場合は著者情報が表示されます。Excel、Wordでは表示されません。
title_aa:[${f:h(doc.title_aa)}] ←※特に表示されません。
・・・(略)
</c:forEach>
お手数おかけいたしますが、よろしくお願いいたします。
discuss
4
(from osdn.net/users/shatake)
まず、title_aaのようなSolrのschema.xmlでダイナミックフィールドとして
定義していないものは利用できません。schema.xmlに記述してある
ダイナミックフィールドのルールでの記述をお願いします。
Wordのタイトルであれば、1つ目のarg要素の指定はtitleになると思いますので、
などが参考になるかと思います。
よろしくお願いいたします。
discuss
5
(from XYLITOL's Profile - OSDN)
[メッセージ #75059 への返信]
ご返信ありがとうございます。
まず、title_aaのようなSolrのschema.xmlでダイナミックフィールドとして
定義していないものは利用できません。schema.xmlに記述してある
ダイナミックフィールドのルールでの記述をお願いします。
認識不足で申し訳ありません。
schema.xmlの記述についてのアドバイスありがとうございます。
了解いたしました。
Wordのタイトルであれば、1つ目のarg要素の指定はtitleになると思いますので、
https://github.com/codelibs/s2robot/blob/master/s2robot/src/test/java/org/codelibs/robot/extractor/impl/TikaExtractorTest.java
などが参考になるかと思います。
情報ありがとうございます。大変参考になります。
Fess(fess-server-9.2.0)に関しては、下記を逆コンパイルし、処理を確認させて頂きました。
<Fess(fess-server-9.2.0)におけるs2robotの対象jar>
%Program Home%\fess-server-9.2.0\webapps\fess\WEB-INF\lib\s2-robot-0.7.2.jar
<s2-robot-0.7.2.jarの解凍した中身>
s2-robot-0.7.2\org\seasar\robot\extractor\impl
MsExcelExtractor.class
MsPowerPointExtractor.class
MsWordExtractor.class
PdfExtractor.class
TikaExtractor.class
・・・など
今回の「Officeファイルのタイトル情報の取得方法」に関しまして、
PDFのタイトル取得のようにs2robot_transformer.dicon、app.diconファイル
(場合によってはschema.xml)の設定にて実現できることを想定しておりました。
Officeファイルのタイトル情報の取得に関しては、javaソースの編集が
必要と認識させて頂きましたので、今回は次期課題と挙げ、収束させて
頂きます。
ありがとうございました。