CodeLibs Struts

SAStrutsを使っていると、Struts 1.xってEOLされているけど、大丈夫なの?というツッコミを開発者以外のところから飛んでくることがあるかと思います。毎回、このツッコミを受けるのも面倒なので、SAStrutsで利用するStrutsをフォークして提供することにしました。基本は、SAStrutsがEOLとかされるまではサポートし続ける予定です。というわけで、CodeLibs Strutsをご利用ください。CodeLibsのMavenリポジトリより利用可能です。基本的に商用サポートはいらないと思いますが、いろんな事情により必要な場合はご相談ください。

FessでFunctionQueryの値を表示する

次のバージョンのFessでは(8.2以降)、SolrのFunctionQueryの値を表示できるようにしてみた。実行したいFunctionQueryとかは、app.diconのQueryHelperImplで指定する。

<component name="queryHelper"   class="jp.sf.fess.helper.impl.QueryHelperImpl">
...
<initMethod name="addQueryParam">
<arg>"word"</arg>
<arg>new String[]{"$query"}</arg>
</initMethod>
<property name="responseFields">new String[]{"id", "score", "boost",
"contentLength", "host", "site", "lastModified", "mimetype",
"tstamp", "title", "digest", "url", "clickCount_i", "favoriteCount_i",
"screenshot_s_s", "wordcount:wordfreq(content,$word)"}</property>
...

上記では、wordfreq(field,word)というFess独自のFunctionQueryをwordcountというフィールドとして扱えるようにしている。Solrの利用可能なFunctionQueryについては、ここに書いてある。wordfreqの第一引数はフィールド名だが、第二引数はリクエストパラメータのqueryから取得したいので、addQueryParamでwordcount:wordfreq(content,$word)の$wordをリクエストパラメータのqueryに置き換えを行う。つまり、addQueryParamのところで$queryとすれば、リクエストパラメータに置き換わる想定。
あとはsearchResults.jspとかで、${doc.wordcount}とすればFunctionQueryの値が表示される感じ。xmlやjsonのレスポンスにもwordcountとして値を取得可能です。

Fess 8.1.0

Fess 8.1.0をリリースしました。ここからダウンロードできます。今回は細かい修正が多いかと思います。ActiveDirectory対応関連の修正も入れましたが、商用サポートでは提供しているシングルサインオンでのロール検索機能も次回以降で入れたいなとは考えています。まぁ、次回以降でいうなら、Solr 4.3に変えて、SolrCloudのサポートとか、Elasticsearch対応とかもやりたいなとは思っています。そんな感じではありますが、引き続きよろしくお願いします!