投稿先が違ったらすみません。
/api/admin/documents/bulk でインデックス(fileタイプ)を追加した後、
fessの検索画面でurlをクリックすると「このサーバからロードできませんでした。」が表示されますが、設定などで回避できますか?
ご教示頂ければ幸いです。
状況
1.fess.logにはFessSystemException:configId is nullのエラーが出力されてます。
2.urlをクリップボードにコピーしエクスプローラーに貼り付け、ファイルが開くことは確認できてますので、urlは正しい認識です。
3.fessのファイルクロールとインデックスを比較するとsegment,config_idがnullです。
実行環境
os:Windows10
fess:2.19.1
opensearch:2.19.1
file://〜はブラウザがリンクとして扱うことができないため、Fessはコンテンツプロキシー機能によりFessが代わりに取得して返却しています。config_idで取得方法が設定されていないため、例外が発生するのだと思います。コンテンツプロキシーを無効などにすれば、取得できるような気もします。
コンテンツプロキシー機能を無効(search.file.proxy=false)に、試したところ
http://localhost:8080/go/?rt=~の URLを表示しエラーになりました。
無効の場合、テキストファイルがブラウザ表示される為、求めている動作では無いので、
有効に戻し運用しようと思います。
すみません、今回元々行いたいのがクロールでcontentが無いインデックスを作成する為に
api/admin/documents/bulkを使用したのですが、既にあるインデックスを更新するapiがあれば
ご教示頂ければ幸いです。
状況を整理したほうが良いと思いますが、
http://localhost:8080/go/?rt=~のURLを表示しエラーになりました。
は、コンテンツプロキシーを無効にすることで、file://〜へリダイレクトすることになり、ブラウザは処理することはできないと思います。また、JSPをdoc.url_linkからdoc.urlに変えて、リンクをfile://〜に変えても、ブラウザが処理できないと思います。なので、一般的に、ブラウザ上で、file://〜を扱えないです。
無効の場合、テキストファイルがブラウザ表示される
これは、状況がわかっておらず…。
基本は、api/admin/documents/bulk でインデックスを更新するのが効率が良いですが、 /api/admin/searchlist/docでも更新はできますが、いまいち要件を理解できていません…。
追記しますが、分かりにくい部分もあると思いますが、お許しください。
>file://〜を扱えないです。
承知しました。
>これは、状況がわかっておらず…。
bluk処理とは別の話しで、FESSでのファイルクロールで作成されたインデックスにおいて
テキストであればブラウザ上に表示されました。
>いまいち要件を理解できていません…。
過去に問い合わせさせて頂いた件でファイルクロール処理で、
拡張子が無いテキストファイル(EUC)や拡張子がenvと言った場合にcontentがNULLなので、それらのインデックス(※)を更新(作成)するためのjsonファイルを作成しようとしてます。
その際にblukを使用した場合にファイルダウンロードが出来ないことが判明した為、インデックスがある場合はconfig_idは存在するのでダウンロードが可能と思ってます。
※に該当するcontentがnullの情報をapiでid,url等を抽出し、url毎にcontentの情報を作成し、idごとにupdateする情報を作成し別apiで更新が出来ればと思った次第です。
試したことはないですが、bulkで入れるときに、似たようなところのfile://のファイルシステムクロール設定を作っておいて、そのIDをconfig_idに設定して、bulkで入れれば良いようにも思います。 /api/admin/searchlist/docで更新できると思いますが、件数が多いと大変だと思います。
bluk処理で既にあるindexのconfig_idを利用し、
同一のurl(file)のインデックスが作成し検索、ファイルのダウンロードまでできました。
ヒットしないファイルもヒット出来るよう改善できそうです。
ご対応ありがとうございました。