|
@@ -0,0 +1,160 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<document>
|
|
|
+ <properties>
|
|
|
+ <title>データストアのクロールに関する設定</title>
|
|
|
+ <author>曽根 孝明</author>
|
|
|
+ <author>菅谷 信介</author>
|
|
|
+ </properties>
|
|
|
+ <body>
|
|
|
+ <section name="概要">
|
|
|
+ <p>Fess ではデータベースやCSVなどのデータソースをクロール対象とすることができます。ここでは、そのために必要なデータストアの設定について説明します。</p>
|
|
|
+ </section>
|
|
|
+ <section name="設定方法">
|
|
|
+ <subsection name="表示方法">
|
|
|
+ <p>管理者アカウントでログイン後、メニューのデータストアをクリックします。</p>
|
|
|
+ <img src="/images/ja/9.1/admin/dataStoreCrawling-1.png" alt="データストアの設定"/>
|
|
|
+ <p>例として、以下のようなテーブルが MySQL の testdb というデータベースにあり、ユーザ名 hoge 、パスワード fuga で接続することができるとして、説明を行います。</p>
|
|
|
+ <source><![CDATA[
|
|
|
+CREATE TABLE doc (
|
|
|
+ id BIGINT NOT NULL AUTO_INCREMENT,
|
|
|
+ title VARCHAR(100) NOT NULL,
|
|
|
+ content VARCHAR(255) NOT NULL,
|
|
|
+ latitude VARCHAR(20),
|
|
|
+ longitude VARCHAR(20),
|
|
|
+ versionNo INTEGER NOT NULL,
|
|
|
+ PRIMARY KEY (id)
|
|
|
+);
|
|
|
+]]></source>
|
|
|
+ <p>ここでは、データは以下のようなものを入れておきます.</p>
|
|
|
+ <source><![CDATA[
|
|
|
+INSERT INTO doc (title, content, latitude, longitude, versionNo) VALUES ('タイトル 1', 'コンテンツ 1 です.', '37.77493', ' -122.419416', 1);
|
|
|
+INSERT INTO doc (title, content, latitude, longitude, versionNo) VALUES ('タイトル 2', 'コンテンツ 2 です.', '34.701909', '135.494977', 1);
|
|
|
+INSERT INTO doc (title, content, latitude, longitude, versionNo) VALUES ('タイトル 3', 'コンテンツ 3 です.', '-33.868901', '151.207091', 1);
|
|
|
+INSERT INTO doc (title, content, latitude, longitude, versionNo) VALUES ('タイトル 4', 'コンテンツ 4 です.', '51.500152', '-0.126236', 1);
|
|
|
+INSERT INTO doc (title, content, latitude, longitude, versionNo) VALUES ('タイトル 5', 'コンテンツ 5 です.', '35.681382', '139.766084', 1);
|
|
|
+]]></source>
|
|
|
+ </subsection>
|
|
|
+ </section>
|
|
|
+ <section name="設定項目">
|
|
|
+ <subsection name="パラメータ">
|
|
|
+ <p>パラメータの設定例は以下のようになります。</p>
|
|
|
+ <source><![CDATA[
|
|
|
+driver=com.mysql.jdbc.Driver
|
|
|
+url=jdbc:mysql://localhost:3306/testdb?useUnicode=true&characterEncoding=UTF-8
|
|
|
+username=hoge
|
|
|
+password=fuga
|
|
|
+sql=select * from doc
|
|
|
+]]></source>
|
|
|
+ <p>パラメータは「キー=値」形式となっています。キーの説明は以下です。</p>
|
|
|
+ <table class="table table-striped table-bordered table-condensed">
|
|
|
+<caption>DB用設定パラメータ例</caption>
|
|
|
+ <tbody>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">driver</td>
|
|
|
+ <td align="left">ドライバクラス名</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">url</td>
|
|
|
+ <td align="left">URL</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">username</td>
|
|
|
+ <td align="left">DBに接続する際のユーザ名</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">password</td>
|
|
|
+ <td align="left">DBに接続する際のパスワード</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">sql</td>
|
|
|
+ <td align="left">クロール対象を得るための SQL 文</td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </subsection>
|
|
|
+ <subsection name="スクリプト">
|
|
|
+ <p>スクリプトの設定例は以下のようになります。</p>
|
|
|
+ <source><![CDATA[
|
|
|
+url="http://localhost/" + id
|
|
|
+host="localhost"
|
|
|
+site="localhost"
|
|
|
+title=title
|
|
|
+content=content
|
|
|
+cache=content
|
|
|
+digest=content
|
|
|
+anchor=
|
|
|
+contentLength=content.length()
|
|
|
+lastModified=@jp.sf.fess.taglib.FessFunctions@formatDate(new java.util.Date(@System@currentTimeMillis()))
|
|
|
+location=latitude + "," + longitude
|
|
|
+latitude_s=latitude
|
|
|
+longitude_s=longitude
|
|
|
+]]></source>
|
|
|
+ <p>
|
|
|
+ パラメータは「キー=値」形式になっています。キーの説明は以下です。
|
|
|
+ </p>
|
|
|
+ <p>
|
|
|
+ 値の側は、OGNL で記述します。文字列はダブルクォーテーションで閉じてください。データベースのカラム名でアクセスすれば、その値になります。
|
|
|
+ </p>
|
|
|
+ <table class="table table-striped table-bordered table-condensed">
|
|
|
+<caption>スクリプトの設定内容</caption>
|
|
|
+ <tbody>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">url</td>
|
|
|
+ <td align="left">URL(検索結果に表示されるリンク)</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">host</td>
|
|
|
+ <td align="left">ホスト名</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">site</td>
|
|
|
+ <td align="left">サイトパス</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">title</td>
|
|
|
+ <td align="left">タイトル</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">content</td>
|
|
|
+ <td align="left">コンテンツ(インデックス対象文字列)</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">cache</td>
|
|
|
+ <td align="left">コンテンツのキャッシュ(インデックス対象ではない)</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">digest</td>
|
|
|
+ <td align="left">検索結果に表示されるダイジェスト部分</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">anchor</td>
|
|
|
+ <td align="left">コンテンツに含まれるリンク(普通は指定する必要はありません)</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="a">
|
|
|
+ <td align="left">contentLength</td>
|
|
|
+ <td align="left">コンテンツの長さ</td>
|
|
|
+ </tr>
|
|
|
+ <tr class="b">
|
|
|
+ <td align="left">lastModified</td>
|
|
|
+ <td align="left">コンテンツの最終更新日</td>
|
|
|
+ </tr>
|
|
|
+ </tbody>
|
|
|
+ </table>
|
|
|
+ </subsection>
|
|
|
+ <subsection name="ドライバ">
|
|
|
+ <p>データベースに接続する際にはドライバが必要となります。webapps/fess/WEB-INF/cmd/lib に jar ファイルを置いてください。</p>
|
|
|
+ </subsection>
|
|
|
+ <subsection name="表示パラメータ">
|
|
|
+ <p>検索結果に latitude_s のような項目値を表示する場合は webapps/fess/WEB-INF/classes/app.dicon に以下のように設定してください。
|
|
|
+ 追加後は searchResults.jsp などで ${doc.latitude_s} とすることで表示されます。</p>
|
|
|
+ <source><![CDATA[
|
|
|
+ <component name="queryHelper" class="jp.sf.fess.helper.impl.QueryHelperImpl">
|
|
|
+ <property name="responseFields">new String[]{"id", "score", "boost",
|
|
|
+ "contentLength", "host", "site", "lastModified", "mimetype",
|
|
|
+ "tstamp", "title", "digest", "url", "latitude_s","longitude_s" }</property>
|
|
|
+ </component>
|
|
|
+]]></source>
|
|
|
+ </subsection>
|
|
|
+ </section>
|
|
|
+ </body>
|
|
|
+</document>
|