とりとめもないBLOG

ただの日記です

全文検索システム Fessを使ってみる

2015-08-04 16:22:31 | PC関連

ファイルサーバーの検索性を上げる為に全文検索システムを入れてみる事にした。
利用者のファイルサーバーへのアクセス権限をリードオンリーとし、使い勝手を良くする為にWebDAVを導入したので、クローリングはWEBのみ。

Fessは日本語の全文検索システムなので、余程下手な事をしなければ、導入は非常に簡単。
取り敢えず初期設定等はヘルプや先人の方々の記録を見ながら実施すれば、素人レベルの私でも30分もかからない。

設定が終わって、早速ファイルサーバーをクロールさせ、検索してみると、<CITE>タグ部分でディレクトリ名が長くなると、途中で省略されてしまう。 リンク部分に表示される文字列も同様である。

ファイル名やディレクトリ名に色々な意味を持たせているので、これらも重要な検索要素なのだが、表示が省略されてしまっては、意味が無い。
結局、標準のままの検索結果表示画面は使用に耐える状態では無かったので、表示部分だけ少し弄らせてもらった。

検索結果を表示しているファイルは「searchResults.jsp」で、fessをインストールしたフォルダーの「\webapps\fess\WEB-INF\view\」に存在する。

まず、検索結果のURLを表示する<cite>タグの部分。標準のままだと、パスの途中で省略されてしまって、フルパスが表示されない。 先にも書いたが、フォルダー名にも意味を持たせているので、ここはフルパスで表示しておきたい。
40代ヘタレプログラマ(組込系)のブログ」様の記事を参考に丸写しした処、URLはフルパスで表示されるものの、2バイト文字がURLエンコーディングされてしまって、[%xx]の羅列が表示されてしまう。 流石にURLエンコーディングされたフルパスの文字列は非常に見難い。
仕方がないので、JavaScriptを挟み込んでデコードする事にした。

--------------------------------------------------------------
<%--
<div class="site ellipsis">
<cite>${f:h(doc.sitePath)}</cite>
<c:if test="${doc.hasCache_s_s=='true'}">
<a href="cache?docId=${doc.docId}${appendHighlightQueries}" class="cache"><bean:message
key="labels.search_result_cache" /></a>
</c:if>
</div>
--%>
<div class="info_urlj">
<cite>
<script type="text/javascript">
var urlj="${doc.urlLink}";
document.write(decodeURIComponent(urlj));
</script>
</cite>
</div>
--------------------------------------------------------------
とりあえず、これでフルパスの2バイト文字は問題無く表示されている。

次にLINKの表示部分。
標準では検索した結果から、タイトルやファイルの要素的な物を引っ張ってきて表示しているみたいなのだが、ディレクトリ名等は上記と同様、途中で省略されてしまって、何が何やら分からなくなってしまう。
実用上はファイルやディレクトリのフルパスの最後の文字列を取得し、それだけを表示してくれれば問題ない。
これの方法は「ラスボスはめんどくさい」様の記事を参考に、例によって丸写しさせて頂いた。
で、まぁ${doc.urlLink}がURLエンコーディングされた後の文字列なので、こちらも上記同様、2バイト文字を普通に表示させるにはデコードしなければならない。

--------------------------------------------------------------
<a class="link" href="${doc.urlLink}" data-uri="${doc.urlLink}" data-id="${doc.docId}">
<script type="text/javascript">
var urlj="${f:h(fn:split(doc.urlLink,"/")[fn:length(fn:split(doc.urlLink,"/"))-1])}";
document.write(decodeURIComponent(urlj));
</script></a>
--------------------------------------------------------------
リンクが表示される部分を以上のように書き換える事で、欲しい情報を表示させる事ができた。

適当に弄っただけなので、これで問題がないのかどうか分からないが、ローカルのファイルサーバー内を検索するだけだし、まわりに迷惑がかかるような事は無いだろう。
また、クロール先がsmbだったりデータベースだったりした場合は、表示がおかしくなるかもしれないが、試していないので、分からない。 

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

8月3日(月)のつぶやき

2015-08-04 06:32:31 | つぶやき

高速道路の渋滞・規制情報を確認できる「Yahoo!道路交通情報」開始 - ケータイ Watch k-tai.impress.co.jp/docs/news/2015… @ktai_watchさんから

1 件 リツイートされました

@js3oag ちなみにウチのWD RED 4TBは室内温度28度ファンレスでフルロード時に45度超えるよ。


@level_7g チャーハンの飯がすごくべっとりした感じに写っているけど、実際にべっとりっすか? どうも来来亭のチャーハンは美味いと思った経験が無いのだけれど…


これ、ちょい説明不足だな。この文だけ広まっても意味不明だよ。
補足すると、経口補水液は結構塩分高めになってるから、まだ脱水になってない人間が大量に飲むと塩分と水分のバランスが崩れてむしろ脱水症状を誘発するって事です。 twitter.com/akinokuko/stat…

Tomokazuさんがリツイート | 7102 RT

有能ぶっても仕事が増えるばかりで給料は増えないということに気付いた僕はいつしか無能なふりをしてわざと的外れな受け答えをするようになった。そしてその言葉が自分自身を支配してだんだん本当の無能になっていくのを感じた。

Tomokazuさんがリツイート | 338 RT

そうか、そうだったんだな。上司は無能なんじゃない、みんなこうして無能になっていったんだ。
─ ここは地獄だ。

Tomokazuさんがリツイート | 248 RT

しかし、こんだけ大がかりな機材で撮影してたんだから、それなりの所っぽいよなぁ。撮影機材から、どこの誰が撮影してたのか割り出せれば、面白いんだろうけど。


引きこもり時代に人から言われて、心に響いた言葉。「助けてって言いなさい。勝手に遠慮して諦める前に言いなさい。今は、助けたくても、お節介が焼き辛い時代なの。伸ばされた手は取れるけど、手を伸ばしてくれないと掴めない。必ず掴んでくれる人はいるから、信頼できる人を探す努力をしなさい。」

Tomokazuさんがリツイート | 3252 RT

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする