Concept
JiroSearchとは
開発ロードマップ
Function
機能概要
検索式機能
タグ機能
検索語のログ機能
Demo
機能の動画デモ
インストールの動画デモ
ユーザサイトのご紹介
Donwload
ダウンロード
動作・利用環境
ライセンス
リリースノート
既知のバグ
Document
Linux へのインストール手順
Windows へのインストール手順
インデックスの作成方法
検索窓の設置方法
FAQ
Company
お問い合わせ
開発blog
会社概要

インデックスの作成方法

JiroSearch のインデックスの作成方法(全体概要)

JiroSearch は、3つの処理から構成されています。

1. ファイルの収集処理
systemProperties.xml で指定されているディレクトリの下にあるファイルを探索し、 検索対象となるファイルを集めます。検索対象かどうかは、ファイルの拡張子によって判断します。検索対象となったファイルの一覧は、fileInfo.xml という名前のファイルに追加されます。

2. 検索用インデックスの作成
前述の処理で検索対象とされたファイルに対して、Lucene を使って検索するためのインデックスを作成します。

3. 検索用サーバー
ブラウザを使って検索を行うためのページを生成し、ブラウザからの操作に応じて実際に検索を行い、結果を返します。


これらの3つの処理は独立していて、それぞれ単独で実行することができます。検索を実際に行うためには、1、2、により検索用の情報を作成しておき、検索用サーバーを起動する必要があります。

(詳細)1. ファイルの収集処理

検索の対象にするページは、あらかじめファイルに保存し、指定したディレクトリ内に配置します。
このディレクトリは、systemProperties.xml 内の、systemProperties の定義で指定しています。これを編集することで、他のディレクトリを指定することが可能になります。

(systemProperties.xml の一部を抜粋)
<bean id="systemProperties" class="jp.co.crm.jirosearch.core.SystemPropertiesImpl"> <property name="filename"> <value>property.xml</value> </property> <property name="xmlParser"> <ref bean="propertyParser"/> </property> <property name="xmlWriter"> <ref bean="propertyXmlWriter"/> </property> <property name="crawlDirectories"> <list> <!-- add target directories here --> <value>/usr/local/jiro/search/folder</value> </list> </property> <property name="excludeCrawlPatterns"> <list> <value>/tmp/</value> </list> </property> <property name="crawlExtensions"> <list> <value>html</value> <value>htm</value> </list> </property> <property name="pathMap"> <map> <entry key="/usr/local/jiro/search/folder/html"> <value>http://www.crm.co.jp</value> </entry> </map> </property> <property name="defaultCharset"><value>MS932</value></property> </bean>

このように、デフォルトでは /usr/local/jiro/search/folder が指定されています。これを修正すれば、修正した先を探索するようになります。また、複数のディレクトリを指定することもできます。

      <list>
        <!-- add target directories here -->
        <value>/usr/local/jiro/searcher/folder</value>
        <value>/usr/local/httplogs</value>
      </list>

このように追加すれば、/usr/local/jiro/searcher/folder を探索した後、/usr/local/httplogs を続けて探索します。
※ Windows 版の場合も、パスの区切りをスラッシュ「/」で区切って書いて構いません。ただし、パスを文字列としてマッチさせるような場合には、バックスラッシュで書かないと失敗するので注意が必要です。
systemProperties.xml を適切に編集したら、JiroSearch をインストールしたディレクトリ
/usr/local/jiro/search
に移動して、source setpath.bashとant filecrawl を実行します。

source setpath.bash
ant filecrawl

※ path が正しく通っていないと実行できません。
source setpath.bash は、実行する端末上で一度実行しておけば閉じるか変更するまで有効になります。

(詳細)2. 検索用インデックスの作成

Lucene のインデックスの作成は、ant createIndex を実行します。
検索用インデックスを格納する場所は、applicationContext.xml 内の documentSearcher の設定情報として指定されていますので、これを修正すれば好みの場所にインデックスを格納することができます。

ant createIndex
  <bean id="documentSearcher"
    class="jp.co.crm.jirosearch.lucene.DocumentSearcherImpl">
    <property name="indexPath">
      <value>/usr/local/jiro/searcher/index</value>
    </property>
  </bean>

(詳細)3. 検索用サーバーの設定

生成したインデックスは、ファイルのパスがそのまま入っています。例えば、
/usr/local/jiro/search/folder/blog/12345.html
のような文字列です。
これを検索結果として表示するときに、Web で使う URL に変換してやる必要があります。

ファイルのパスと URL との変換ルールは、systemProperties.xml 内の、systemProperties の中の、pathMap というプロパティで指定します。

    <property name="pathMap">
      <map>
        <entry key="D:\usr\local\jiro\searcher\folder\html">
          <value>http://www.crm.co.jp</value>
        </entry>
        <entry key="/usr/local/jiro/searcher/folder/html">
          <value>http://www.crm.co.jp</value>
        </entry>
      </map>
    </property>

この pathMap には、2つの変換規則が指定されています。
最初の規則は、
D:\usr\local\jiro\searcher\folder\html
という文字列がパスにあれば
http://www.crm.co.jp
に置き換えるというもので、

もう一つは、
/usr/local/jiro/searcher/folder/html
という文字列がパスにあれば、
http://www.crm.co.jp
に置き換えるというものです。

例えば、検索したドキュメントに対応するパスが、
/usr/local/jiro/searcher/folder/html/index.html
であれば、
/usr/local/jiro/searcher/folder/html
の部分を
http://www.crm.co.jp
で置き換えた結果の、
http://www.crm.co.jp/index.html
という文字列が、検索結果のリストの中にリンクとして表示されることになります。