(from osdn.net/users/ruf)
FESS10.1を利用しています。
古い文書登録システムからエクスポートしたTIFFとPDFファイル群をFESSにて検索できるように構築しました。
題名にありますようにTIFFとPDFファイルのほとんどが紙ファイルをスキャンしたものなので,ファイルの中身でなく,ファイル名で検索したいと考えています。
現状,FESS10.1ではファイル名のあいまい検索(前方一致,部分一致)ができないように思えますが,管理画面からの設定で行なえる方法があるでしょうか?
例:ABC123.tifff というファイルを検索結果にヒットさせたいが,検索窓に「AB」や「C12」とか入力してもヒットしない。「ABC123」とフルで綴りすべて入れないとヒットしない。
FESS9.xでは
にあるような方法で可能とありました。10.1ではこれと類似のファイルが
/opt/fess/app/WEB-INF/classes/crawler 以下の
extractor+tikaExtractor.xml
というファイルかと推察しますが,ここにどのように追記/変更すればよいでしょうか?
以上,ご教示いただければと思います。どうぞよろしくお願い致します。
(from osdn.net/users/shinsuke)
部分検索をするためにelasticsearchのanalyzerの設定変更が必要です。
そのような検索にするためにはngramのインデックスを作る必要があるため、app/WEB-INF/classes/fess_indices/fess.jsonの
“standard_analyzer”: {
“type”: “custom”,
“char_filter”: [
“mapping_ja_filter”
],
“tokenizer”: “unigram_synonym_tokenizer”,
“filter”: [
“alphanum_word_filter”,
“cjk_bigram”,
“stopword_en_filter”,
“lowercase”,
“stemmer_en_filter”
]
}
で
“alphanum_word_filter”,
“cjk_bigram”,
“stopword_en_filter”,
“stemmer_en_filter”
あたりを削除していただければ良いように思います。この変更は初回起動時にfessインデックス作成時に反映されます。既存のインデックスに対する変更はインデックスをcloseして、elasticsearchの設定変更方法で行う必要があります。
readAsTextIfFailedはFess 10ではfalseになっているので、特に変更は必要ないと思います。
(from osdn.net/users/ruf)
詳細な回答,ありがとうございます。
早速記述を組み込みクローリングしたところ,検索結果が以下のようになります。
『ABC-123-45.tif』というファイル名がある場合,
ABC,123
というキーワードだとヒットするが
AB,C-1,3-45
などというキーワードだとヒットせず,「0件」と出る。
また『ABC12345.pdf』というファイル名だと,以前と同じく
ABC12345
とすべて綴らないとヒットしない。
どうやら,記号などで文字列を分けるような処理があるようですが,その処理を効かせずに,クロールできればと思います。ご教示いただけますでしょうか。
どうぞよろしくお願い致します。
[メッセージ #78272 への返信]
部分検索をするためにelasticsearchのanalyzerの設定変更が必要です。
そのような検索にするためにはngramのインデックスを作る必要があるため、app/WEB-INF/classes/fess_indices/fess.jsonの
“standard_analyzer”: {
“type”: “custom”,
“char_filter”: [
“mapping_ja_filter”
],
“tokenizer”: “unigram_synonym_tokenizer”,
“filter”: [
“alphanum_word_filter”,
“cjk_bigram”,
“stopword_en_filter”,
“lowercase”,
“stemmer_en_filter”
]
}
で
“alphanum_word_filter”,
“cjk_bigram”,
“stopword_en_filter”,
“stemmer_en_filter”
あたりを削除していただければ良いように思います。この変更は初回起動時にfessインデックス作成時に反映されます。既存のインデックスに対する変更はインデックスをcloseして、elasticsearchの設定変更方法で行う必要があります。
readAsTextIfFailedはFess 10ではfalseになっているので、特に変更は必要ないと思います。
(from osdn.net/users/ruf)
お世話になります。
最新版で,上記変更を行ない,インデックス作成して行なってみたところ,意図した通りの検索結果になりました。
大変お世話になり,ありがとうございます。大いに活用させていただきます。
[メッセージ #78284 への返信]
詳細な回答,ありがとうございます。
早速記述を組み込みクローリングしたところ,検索結果が以下のようになります。
『ABC-123-45.tif』というファイル名がある場合,
ABC,123
というキーワードだとヒットするが
AB,C-1,3-45
などというキーワードだとヒットせず,「0件」と出る。
また『ABC12345.pdf』というファイル名だと,以前と同じく
ABC12345
とすべて綴らないとヒットしない。
どうやら,記号などで文字列を分けるような処理があるようですが,その処理を効かせずに,クロールできればと思います。ご教示いただけますでしょうか。
どうぞよろしくお願い致します。
[メッセージ #78272 への返信]
部分検索をするためにelasticsearchのanalyzerの設定変更が必要です。
そのような検索にするためにはngramのインデックスを作る必要があるため、app/WEB-INF/classes/fess_indices/fess.jsonの
“standard_analyzer”: {
“type”: “custom”,
“char_filter”: [
“mapping_ja_filter”
],
“tokenizer”: “unigram_synonym_tokenizer”,
“filter”: [
“alphanum_word_filter”,
“cjk_bigram”,
“stopword_en_filter”,
“lowercase”,
“stemmer_en_filter”
]
}
で
“alphanum_word_filter”,
“cjk_bigram”,
“stopword_en_filter”,
“stemmer_en_filter”
あたりを削除していただければ良いように思います。この変更は初回起動時にfessインデックス作成時に反映されます。既存のインデックスに対する変更はインデックスをcloseして、elasticsearchの設定変更方法で行う必要があります。
readAsTextIfFailedはFess 10ではfalseになっているので、特に変更は必要ないと思います。