This commit is contained in:
Shinsuke Sugaya 2014-03-08 07:21:59 +09:00
parent 6c9d171de7
commit 256a0da50e
126 changed files with 3620 additions and 2 deletions

View file

@ -89,7 +89,8 @@ public class SystemHelper implements Serializable {
private boolean useOwnTmpDir = true;
private String baseHelpLink = "http://fess.codelibs.org/{lang}/"
+ Constants.MAJOR_VERSION + ".0/admin/";
+ Constants.MAJOR_VERSION + "." + Constants.MINOR_VERSION
+ "/admin/";
private String[] supportedHelpLangs = new String[] { "ja" };

View file

@ -28,7 +28,7 @@
<property name="javaCommandPath">"java"</property>
<property name="filterPathEncoding">"UTF-8"</property>
<property name="useOwnTmpDir">true</property>
<property name="baseHelpLink">"http://fess.codelibs.org/{lang}/9.0/admin/"</property>
<property name="baseHelpLink">"http://fess.codelibs.org/{lang}/9.1/admin/"</property>
<property name="supportedLanguages">new String[] { "ar", "bg", "ca",
"cz", "da", "de", "el", "en", "es", "eu", "fa", "fi", "fr", "ga", "gl",
"hi", "hu", "hy", "id", "it", "ja", "lv", "ko", "nl", "no", "pt",

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ブラウザタイプの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ブラウザタイプに関わる設定について説明します。ブラウザタイプは検索結果データに付加され、閲覧ブラウザの種類ごとに検索結果を出し分けることができます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのブラウザタイプをクリックします。</p>
<img src="/images/ja/9.1/admin/browserType-1.png" alt="ブラウザタイプの設定" />
</subsection>
</section>
<section name="設定項目">
<subsection name="ブラウザタイプ">
<p>表示名と値を設定できます。新規に閲覧端末を増やしたい場合などに利用します。特別なカスタマイズが必要場合にしか、利用する必要はありません。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>クロール全般の設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、クロール全般に関わる設定について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのクロール全般をクリックします。</p>
<img src="/images/ja/9.1/admin/crawl-1.png" alt="クロール全般"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="検索ログ">
<p>利用者が検索を入力して検索したときにログを出力します。検索の統計を取得したい場合には有効にしてください。</p>
</subsection>
<subsection name="利用者ログ">
<p>検索した利用者の情報を保存します。検索利用者を識別することが可能になります。</p>
</subsection>
<subsection name="お気に入りログ">
<p>利用者が良いと判断した検索結果を収集することができます。検索結果一覧画面で結果に投票リンクが表示されるので、そのリンクを押下したものを記録します。収集した結果をクロール時にインデックスに反映することもできます。</p>
</subsection>
<subsection name="検索パラメータの追加">
<p>検索結果のリンクに検索語を付加します。PDF では検索語を検索した状態で表示することが可能になります。</p>
</subsection>
<subsection name="XML応答">
<p>XML形式で検索結果が取得可能になります。http://localhost:8080/fess/xml?query=検索語 にアクセスすることで取得できます。</p>
</subsection>
<subsection name="JSON応答">
<p>JSON形式で検索結果が取得可能になります。http://localhost:8080/fess/json?query=検索語 にアクセスすることで取得できます。</p>
</subsection>
<subsection name="モバイル変換">
<p>検索結果のウェブサイトが PC 用だった場合、モバイル端末で正しく表示できないかもしれません。
そのような場合に、モバイル変換を選択していると、PC サイトをモバイル端末用に変換して表示することができます。 Google を選択した場合、Google Wireless Transcoder により、携帯向けにコンテンツを表示することができます。 たとえば、PC 用サイトを検索対象にして結果をモバイル端末でも閲覧したい場合、モバイル端末向け検索結果一覧で検索結果のリンクが Google Wireless Transcoder に渡すリンクになります。 モバイル変換を利用することでモバイル端末でもスムーズな検索を利用することができます。</p>
</subsection>
<subsection name="デフォルトラベル値">
<p>ラベルが表示可能な場合にデフォルトで表示するラベルを指定することができます。ラベルの値を指定します。</p>
</subsection>
<subsection name="サポートする検索">
<p>検索画面を表示するかどうかを指定できます。ウェブを選択した場合はモバイル用の検索画面が利用できなくなります。利用不可とした場合は、検索画面を利用できません。インデックス作成専用サーバーとする場合などに利用不可を選択します。</p>
</subsection>
<subsection name="注目キーワード応答">
<p>JSON形式で検索が多い検索語が取得可能になります。http://localhost:8080/fess/hotsearchword にアクセスすることで取得できます。</p>
</subsection>
<subsection name="指定日数以前の検索ログ削除">
<p>指定した日数以前の検索ログを削除します。一日一回のログパージで古いログは削除されます。</p>
</subsection>
<subsection name="指定日数以前のジョブログ削除">
<p>指定した日数以前のジョブログを削除します。一日一回のログパージで古いログは削除されます。</p>
</subsection>
<subsection name="指定日数以前の利用者情報削除">
<p>指定した日数以前の利用者情報を削除します。一日一回のログパージで古いログは削除されます。</p>
</subsection>
<subsection name="ログ削除のBots名">
<p>検索ログから削除したい Bots のログをカンマ (,) 区切りでユーザーエージェントに含まれる Bots 名を指定します。一日一回のログパージでログは削除されます。</p>
</subsection>
<subsection name="通知アドレス">
<p>クロールを完了時にクロールに関する情報を送信するメールアドレスを指定します。</p>
</subsection>
<subsection name="CSV エンコーディング">
<p>バックアップ・リストアで利用される CSV のエンコーディングを指定します。</p>
</subsection>
<subsection name="差分クロール">
<p>差分クロールを有効にすると、lastModifiedフィールドの値と対象ドキュメントの更新日時(HTTPの場合はLAST_MODIFIEDの値、ファイルの場合はタイムスタンプ)を比較して、更新されたものだけをクロールします。</p>
</subsection>
<subsection name="ACLをロールに利用">
<p>ファイル付加されているグループのアクセス権情報をロールに追加します。</p>
</subsection>
<subsection name="サーバー切り替え">
<p>Fess は複数の Solr サーバーをグループとしてまとめることができ、そのグループを複数管理できます。 更新用と検索用の Solr サーバーグループは異なるグループを利用します。 たとえば、2 つのグループがあった場合、更新用がグループ 2 を利用し、検索用がグループ 1 を利用します。 サーバー切り替えを有効にしている場合は、クロールが完了した後に更新用がグループ 1 になり、検索用がグループ 2 に切り替わります。複数の Solr サーバーグループを登録している場合にだけ有効です。</p>
</subsection>
<subsection name="ドキュメント数毎にコミット">
<p>Fess では 10 件単位でドキュメントを Solr に対して送信します。ここで指定した値ごとに Solr に対してドキュメントのコミットを発行します。0 の場合はクロール完了後にコミットが実行されます。</p>
</subsection>
<subsection name="同時実行のクロール設定数">
<p>Fess のドキュメントクロールはウェブクロール、ファイルシステムクロールの順に行われます。それぞれのクロールにおいて、ここで指定した値の数だけ、設定したクロール先を複数同時に実行することができます。たとえば、同時実行のクロール設定数を 3 として、ウェブクロールに設定 1 から設定 10 まで登録してある場合、クロール実行時には設定 1 から設定 3 までの 3 つが実行されます。 それらのどれかのクロールが完了すると、設定 4 のクロールが開始されます。 同様に、設定 10 まで 1 つ完了するごとに 1 つ起動していきます。</p>
<p>クロール設定でスレッド数を指定することができますが、ここでの同時実行のクロール設定数は起動するスレッド数を示すものではありません。たとえば、同時実行のクロール設定数が 3 で、各クロール設定のスレッド数を 5 としている場合は、3 x 5 = 15 のスレッド数が起動してクロールすることになります。</p>
</subsection>
<subsection name="インデックスの有効期限">
<p>インデックスされているデータを新規データ登録後に自動的に削除することができます。インデックスの有効期限で 5 日を選択している場合は、5 日以上前に登録して更新がなかったものが削除されます。コンテンツが削除されてしまったデータなどを検索対象から外す場合などに利用できます。</p>
</subsection>
<subsection name="除外する障害タイプ">
<p>障害 URL に登録された URL は、障害回数を超えると次回のクロール時にクロール対象外になります。監視する必要のない障害種類はこの値を指定することで次回もクロール対象となります。</p>
</subsection>
<subsection name="障害回数">
<p>障害回数を超えた障害 URL はクロール対象外になります。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>セッション情報の設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、セッション情報に関わる設定について説明します。1 回のクロールした結果を 1 つのセッション情報として保存されます。実行した時間やインデックスされた数を確認することができます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのセッション情報をクリックします。</p>
</subsection>
</section>
<section name="設定項目">
<subsection name="セッション情報一覧">
<img src="/images/ja/9.1/admin/crawlingSession-1.png" alt="セッション情報一覧"/>
<p>すべて削除リンクをクリックすると実行中でないすべてのセッション情報を削除することができます。
期限が切れたセッションは次回クロール時に削除されます。</p>
</subsection>
<subsection name="セッション情報詳細">
<p>セッション ID のクロール内容を確認できます。クロールの開始や終了時間、インデックスされたドキュメント数などが一覧されます。</p>
<img src="/images/ja/9.1/admin/crawlingSession-2.png" alt="セッション情報詳細"/>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>設定情報のバックアップとリストア</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、Fess の設定情報のバックアップとリストア方法について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのバックアップ/リストアをクリックします。</p>
<img src="/images/ja/9.1/admin/data-1.png" alt="バックアップ/リストア"/>
</subsection>
<subsection name="設定のバックアップ">
<p>ダウンロードリンクをクリックすると、Fess の設定情報を XML 形式で出力します。保存される設定情報は以下のものです。</p>
<ul>
<li>クロール全般の設定</li>
<li>ウェブクロール設定</li>
<li>ファイルシステムクロール設定</li>
<li>データストアクロール設定</li>
<li>ラベル</li>
<li>パスマッピング</li>
<li>ウェブ認証</li>
<li>ファイルシステム認証</li>
<li>リクエストヘッダー</li>
<li>重複ホスト</li>
<li>ロール</li>
<li>対応ブラウザ</li>
</ul>
<p>セッション情報、検索ログ、クリックログはCSV形式で取得できます。</p>
<p>Solr 内のインデックスデータやクロール中のデータはバックアップ対象にはなりません。それらのデータは Fess の設定情報をリストア後、クロールすることで再生成することができます。Solr のインデックスをバックアップする必要がある場合は、solr ディレクトリをバックアップしてください。</p>
</subsection>
<subsection name="設定のリストア">
<p>バックアップで出力した XML または CSV をアップロードすることで設定情報、各種ログを復元することができます。ファイルを指定してデータのリストアボタンをクリックしてください。</p>
<p>XML ファイルの設定情報指定の際にデータの上書きを有効にすると、既に同じデータがある場合は既存のデータの更新を行います。</p>
</subsection>
</section>
</body>
</document>

View file

@ -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>

View file

@ -0,0 +1,144 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>デザインの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、検索画面のデザインに関する設定について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのデザインをクリックします。</p>
<img src="/images/ja/9.1/admin/design-1.png" alt="デザイン"/>
<p>以下の画面で検索画面を編集することができます。</p>
<img src="/images/ja/9.1/admin/design-2.png" alt="JSP の編集画面"/>
</subsection>
<subsection name="登録日時や更新日時を表示する">
<p>Fess でクロールして登録した日時や取得するファイルの更新日時を検索結果に表示したい場合は、検索結果ページ (コンテンツ)に次のように記述します。</p>
<source><![CDATA[
<fmt:formatDate value="${fe:parseDate(doc.lastModified)}" pattern="yyyy-MM-dd" />
]]></source>
<p>tstampDate がクロール時の登録日時、lastModifiedDate がドキュメントの更新日時になります。出力する日付フォーマットは fmt:formateDate の仕様に従います。</p>
</subsection>
</section>
<section name="設定項目">
<subsection name="ファイル管理">
<p>検索画面で利用可能なファイルをダウンロードや削除することができます。</p>
</subsection>
<subsection name="ファイルアップロード">
<p>検索画面で使用するファイルをアップロードすることができます。サポートしている画像ファイル名は jpg、gif、png、css、js です。</p>
</subsection>
<subsection name="ファイル名">
<p>アップロードするファイルにファイル名を指定したい場合に利用します。省略した場合はアップロードしたファイル名が利用されます。</p>
</subsection>
<subsection name="デザイン JSP ファイル">
<p>検索画面の JSP ファイルを編集することができます。対象の JSP ファイルの編集ボタンを押下することで、現在の JSP ファイルを編集することができます。また、デフォルトを使用ボタンを押下すると、インストール時の JSP ファイルとして編集することができます。編集画面で更新ボタンで保存することで、変更が反映されます。</p>
<p>以下に記述方法の例を示します。</p>
<table class="table table-striped table-bordered table-condensed" columninfo="lp{10cm}">
<caption>編集可能なJSPファイル</caption>
<tbody>
<tr class="a">
<td align="left">トップページ (フレーム)</td>
<td align="left">検索トップページの JSP ファイルです。この JSP ファイルが各部分の JSP ファイルを include しています。</td>
</tr>
<tr class="b">
<td align="left">ヘッダー</td>
<td align="left">ヘッダーのJSPファイルです。</td>
</tr>
<tr class="a">
<td align="left">フッター</td>
<td align="left">フッターのJSPファイルです。</td>
</tr>
<tr class="b">
<td align="left">検索結果ページ (フレーム)</td>
<td align="left">検索結果一覧ページの JSP ファイルです。この JSP ファイルが各部分の JSP ファイルを include しています。</td>
</tr>
<tr class="a">
<td align="left">検索結果ページ (コンテンツ)</td>
<td align="left">検索結果一覧ページの検索結果部分を表現する JSP ファイルです。検索結果があるときに利用される JSP ファイルです。検索結果の表現をカスタマイズしたい場合に変更します。</td>
</tr>
<tr class="b">
<td align="left">検索結果ページ (結果なし)</td>
<td align="left">検索結果一覧ページの検索結果部分を表現する JSP ファイルです。検索結果がないときに利用される JSP ファイルです。</td>
</tr>
<tr class="a">
<td align="left">ヘルプページ(フレーム)</td>
<td align="left">ヘルプページのJSPファイルです。</td>
</tr>
<tr class="b">
<td align="left">検索エラーページ</td>
<td align="left">検索エラーページのJSPファイルです。検索エラーの表現をカスタマイズしたい場合に変更します。</td>
</tr>
<tr class="a">
<td align="left">携帯用トップページ (フレーム)</td>
<td align="left">携帯用トップページの JSP ファイルです。この JSP ファイルが各部分の JSP ファイルを include しています。</td>
</tr>
<tr class="b">
<td align="left">携帯用トップページ (Headタグ内)</td>
<td align="left">携帯用トップページの head タグ内を表現する JSP ファイルです。meta タグ、title タグ、script タグなどを編集したい場合に変更します。</td>
</tr>
<tr class="a">
<td align="left">携帯用トップページ (コンテンツ)</td>
<td align="left">携帯用トップページの body タグ内を表現する JSP ファイルです。</td>
</tr>
<tr class="b">
<td align="left">携帯用検索結果ページ (フレーム)</td>
<td align="left">携帯用検索結果ページの JSP ファイルです。この JSP ファイルが各部分の JSP ファイルを include しています。</td>
</tr>
<tr class="a">
<td align="left">携帯用検索結果ページ (Headタグ内)</td>
<td align="left">携帯用検索結果ページの head タグ内を表現する JSP ファイルです。meta タグ、title タグ、script タグなどを編集したい場合に変更します。</td>
</tr>
<tr class="b">
<td align="left">携帯用検索結果ページ (ヘッダー)</td>
<td align="left">携帯用検索結果ページのヘッダー部分を表現する JSP ファイルです。ページ上部の検索フォームなどが含まれています。</td>
</tr>
<tr class="a">
<td align="left">携帯用検索結果ページ (フッター)</td>
<td align="left">携帯用検索結果ページのフッター部分を表現する JSP ファイルです。ページ下部のコピーライトが含まれています。</td>
</tr>
<tr class="b">
<td align="left">携帯用検索結果ページ (コンテンツ)</td>
<td align="left">携帯用検索結果ページの検索結果部分を表現する JSP ファイルです。検索結果があるときに利用される JSP ファイルです。検索結果の表現をカスタマイズしたい場合に変更します。</td>
</tr>
<tr class="a">
<td align="left">携帯用検索結果ページ (結果無し)</td>
<td align="left">携帯用検索結果ページの検索結果部分を表現する JSP ファイルです。検索結果がないときに利用される JSP ファイルです。</td>
</tr>
<tr class="b">
<td align="left">ファイル起動ページ</td>
<td align="left">ファイル起動ページのJSPファイルです。ファイルシステムクロールを利用して検索結果の表示にJavaプラグインの表示を有効にした場合に利用される画面です。</td>
</tr>
<tr class="a">
<td align="left">エラーページ(ヘッダー)</td>
<td align="left">エラーページのヘッダー部分を表現するJSPファイルです。</td>
</tr>
<tr class="b">
<td align="left">エラーページ(フッター)</td>
<td align="left">エラーページのフッター部分を表現するJSPファイルです。</td>
</tr>
<tr class="a">
<td align="left">エラーページ(ページが見つかりません)</td>
<td align="left">ページが見つからない場合に表示されるエラーページのJSPファイルです。</td>
</tr>
<tr class="b">
<td align="left">エラーページ(システムエラー)</td>
<td align="left">システムエラーの場合に表示されるエラーページのJSPファイルです。</td>
</tr>
<tr class="a">
<td align="left">エラーページ(リダイレクト)</td>
<td align="left">HTTPリダイレクト発生時に表示されるエラーページのJSPファイルです。</td>
</tr>
<tr class="b">
<td align="left">エラーページ(不正なリクエスト)</td>
<td align="left">不正なリクエストが発生時に表示されるエラーページのJSPファイルです。</td>
</tr>
</tbody>
</table>
<p>携帯用画面も PC 用と同様に編集することができます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>辞書の設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、辞書に関する設定について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの辞書をクリックします。編集可能な各種辞書が一覧されます。</p>
<img src="/images/ja/9.1/admin/dict-1.png" alt="辞書一覧"/>
</subsection>
</section>
<section name="ユーザー辞書">
<p>人名、固有名詞、専門用語などの登録することができます。
ユーザー辞書のパスをクリックすると辞書に登録された単語一覧が表示されます。</p>
<img src="/images/ja/9.1/admin/dict-4.png" alt="ユーザー辞書一覧"/>
<p>編集したい単語をクリックすると編集画面が表示されます。</p>
<img src="/images/ja/9.1/admin/dict-5.png" alt="ユーザー辞書作成"/>
<subsection name="トークン">
<p>検索対象とする単語を入力します。</p>
</subsection>
<subsection name="分割">
<p>単語が複合語の場合、分割した単語で検索されてもヒットするようにできます。
  たとえば、「全文検索エンジン」を「全文 検索 エンジン」と入力することで、分割した単語でも検索できるようにします。</p>
</subsection>
<subsection name="読み">
<p>単語の読みをカタカナで入力します。分割を行った場合は分割して入力します。
  たとえば、「ゼンブン ケンサク エンジン」と入力します。</p>
</subsection>
<subsection name="品詞">
<p>入力した単語の品詞を入力します。</p>
</subsection>
</section>
<section name="同義語辞書">
<p>意味が同じ単語(GB、gigabyteなど)を登録することができます。
同義語辞書のパスをクリックすると辞書に登録された単語一覧が表示されます。</p>
<img src="/images/ja/9.1/admin/dict-2.png" alt="同義語一覧"/>
<p>編集したい単語をクリックすると編集画面が表示されます。</p>
<img src="/images/ja/9.1/admin/dict-3.png" alt="同義語作成"/>
<subsection name="変換元">
<p>同義語として扱う対象となる単語を入力します。</p>
</subsection>
<subsection name="変換後">
<p>変換元で入力した単語を変換後の単語で展開します。
たとえば、「TV」を「TV」と「テレビ」として扱いたい場合は、変換元に「TV」を入力して、変換後に「TV」と「テレビ」を入力します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>インデックスの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、インデックスに関する設定について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのインデックスをクリックします。</p>
<img src="/images/ja/9.1/admin/document-1.png" alt="インデックスの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="Solr サーバーへのアクション">
<p>サーバーグループに対して、インデックスのコミット、最適化を発行することができます。</p>
</subsection>
<subsection name="インデックス削除">
<p>セッション ID を指定して、特定の検索対象を削除することができます。URL を指定することで特定のドキュメントだけを削除することもできます。</p>
</subsection>
<subsection name="追加されたドキュメント">
<p>各セッションで登録されたドキュメント数が多い順に表示されます。セッション名をクリックすることでその結果一覧を確認できます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>障害URL</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、障害URLについて説明します。クロール時に取得できなかった URL が記録され、障害 URL として確認することができます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの障害 URL をクリックします。</p>
<img src="/images/ja/9.1/admin/failureUrl-1.png" alt="障害URL" />
<p>障害 URL の確認リンクをクリックすると、詳細が表示されます。</p>
<img src="/images/ja/9.1/admin/failureUrl-2.png" alt="障害URLの詳細" />
</subsection>
<subsection name="一覧">
<p>クロールできなかった URL と日時が一覧できます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>人気URLログ</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、人気URLログについて説明します。人気URLログは利用者が検索画面で投票リンクをクリックしたときにお気に入りのリンクとして登録します。クロール全般の設定で本機能を無効にすることができます。</p>
</section>
<section name="利用方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの人気URLをクリックします。</p>
<img src="/images/ja/9.1/admin/favoriteLog-1.png" alt="利用者一覧" />
</subsection>
<subsection name="利用者一覧">
<p>人気URLが一覧されます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ファイルシステム認証に関する設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ファイルシステムを対象としたクロールに対してファイルシステム認証が必要な場合の設定方法について説明します。Fess は Windows の共有フォルダに対するクロールに対応しています。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのファイルシステム認証をクリックします。</p>
<img src="/images/ja/9.1/admin/fileAuthentication-1.png" alt="ファイルシステム認証の設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="ホスト名">
<p>認証が必要なサイトのホスト名を指定します。省略した場合は、指定したファイルシステムクロール設定において、任意のホスト名で適用されます。</p>
</subsection>
<subsection name="ポート">
<p>認証が必要なサイトのポートを指定します。すべてのポートに対して適用したい場合は -1 を指定します。その場合は、指定したファイルシステムクロール設定において、任意のポートで適用されます。</p>
</subsection>
<subsection name="認証方法">
<p>認証方法を選択します。SAMBA (Windows共有フォルダ認証) を利用することができます。</p>
</subsection>
<subsection name="ユーザー名">
<p>認証サイトにログインするためのユーザー名を指定します。</p>
</subsection>
<subsection name="パスワード">
<p>認証サイトにログインするためのパスワードを指定します。</p>
</subsection>
<subsection name="パラメーター">
<p>認証サイトにログインするために必要な設定値がある場合に設定します。SAMBA の場合、domainの値を設定することができます。設定する場合には以下のように記述します。</p>
<source><![CDATA[
domain=FUGA
]]></source>
</subsection>
<subsection name="FS設定名">
<p>上記の認証設定を適用するファイルシステムクロールの設定名を選択します。ファイルシステムクロール設定を事前に登録しておく必要があります。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ファイルシステムのクロールに関する設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ファイルシステムを対象としたクロールに関する設定について説明します。</p>
<p>Fess で数十万件以上のドキュメントをインデックス化したい場合は、1 つのクロール設定を数万件以下にすることを推奨しています。1 つのクロール設定で数十万件を対象すると、インデックス化のパフォーマンスが低下する場合があります。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのファイルシステムをクリックします。</p>
<img src="/images/ja/9.1/admin/fileCrawlingConfig-1.png" alt="ファイルシステムクロールの設定" sizeinfo="height=23cm"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="設定名">
<p>一覧ページで表示される名前です。</p>
</subsection>
<subsection name="パスの指定">
<p>パスは複数指定できます。file: または smb: で始まるように指定します。たとえば、</p>
<source><![CDATA[
file:/home/taro/
file:/home/documents/
smb://host1/share/
]]></source>
<p>のように指定します。指定されたディレクトリ以下を巡回します。</p>
<p>Windows 環境の場合は URI で記述する必要があるので、c:\Documents\taro というパスであれば file:/c:/Documents/taro と指定します。</p>
<p>Windows の共有フォルダについては、たとえば、host1のshareフォルダをクロール対象にしたい場合は、クロール設定でsmb://host1/share/とします(最後に/が必要)。共有フォルダに認証がある場合にはファイルシステム認証画面で認証情報を設定します。</p>
</subsection>
<subsection name="パスのフィルタリング">
<p>正規表現で指定することによって、特定のパスパターンをクロールや検索の対象にしたり、除外できます。</p>
<table class="table table-striped table-bordered table-condensed" columninfo="lp{10cm}">
<caption>パスフィルタリング内容一覧</caption>
<tbody>
<tr>
<th>クロール対象とするパス</th>
<td>指定された正規表現のパスをクロールします。</td>
</tr>
<tr>
<th>クロール対象から除外するパス</th>
<td>指定された正規表現のパスをクロール対象としません。クロール対象とするパスが指定されていても、ここでの指定が優先されます。</td>
</tr>
<tr>
<th>検索対象とするパス</th>
<td>指定された正規表現のパスを検索対象します。検索除外対象とするパスと指定されていても、ここでの指定が優先されます。</td>
</tr>
<tr>
<th>検索対象から除外するパス</th>
<td>指定された正規表現のパスを検索対象としません。クロール対象から除外してしまうと以降の全てのリンクが検索対象とすることができませんが、クロール対象の一部だけ検索対象としない場合に指定します。</td>
</tr>
</tbody>
</table>
<p>たとえば、/home/ 以下しかクロールしない場合は、対象とするパスに</p>
<source><![CDATA[
file:/home/.*
]]></source>
<p>また、拡張子が png のものを対象から除外したい場合は、除外するパスに</p>
<source><![CDATA[
.*\.png$
]]></source>
<p>と指定します。改行をすることで複数指定することが可能です。</p>
<p>指定方法はjava.io.File が扱う URI に従います。以下のようになります。</p>
<source><![CDATA[
/home/taro -> file:/home/taro
c:\memo.txt -> file:/c:/memo.txt
\\server\memo.txt -> file:////server/memo.txt
]]></source>
</subsection>
<subsection name="設定パラメータ">
<p>クロールに必要な設定情報を指定することができます。</p>
</subsection>
<subsection name="深さ">
<p>ディレクトリ階層の深さを指定します。</p>
</subsection>
<subsection name="最大アクセス数">
<p>クロールして取得するドキュメント数を指定できます。</p>
</subsection>
<subsection name="スレッド数">
<p>クロールするスレッド数を指定します。5 を指定した場合、5 個のスレッドで同時にウェブサイトをクロールします。</p>
</subsection>
<subsection name="間隔">
<p>ドキュメントをクロールする間隔です。5000 とした場合は 1 つのスレッドが 5 秒間隔でドキュメントを取得しにいきます。</p>
<p>スレッド数を 5 個、間隔を 1000 ミリ秒とした場合、1 秒間で 5 ドキュメントを取得しにいくことになります。</p>
</subsection>
<subsection name="ブースト値">
<p>このクロール設定で検索対象とした URL に重みを付けることができます。検索結果において、他のものより上に表示したい場合に利用します。標準では 1 です。大きい値ほど優先されて、検索結果の上位に表示されます。他の結果より確実に優先して表示したい場合は、10000 などの十分に大きな値を指定します。</p>
<p>指定できる値は 0 以上の整数です。この値は Solr にドキュメントを追加する際のブースト値として利用されます。</p>
</subsection>
<subsection name="ブラウザタイプ">
<p>選択されたブラウザタイプのデータとして、クロールしたドキュメントを登録します。PC しか選択されていない場合は、モバイル端末で検索しても結果に表示されません。特定のモバイル端末だけで表示したい場合にも利用できます。</p>
</subsection>
<subsection name="ロール">
<p>利用するユーザーが特定のロールのときだけに検索結果に表示できるように制御することができます。ロールはあらかじめ設定しておく必要があります。たとえば、ポータルサーバーなどログインを必要とするシステムにおいて、利用するユーザーにより検索結果を出し分けたい場合に利用できます。</p>
</subsection>
<subsection name="ラベル">
<p>検索結果をラベル付けすることができます。ラベルを指定すると、検索画面において、ラベルごとの検索などが可能になります。</p>
</subsection>
<subsection name="状態">
<p>有効にすることで、設定されているクロール時刻にクロールされます。一時的にクロールしないようにしたい場合に利用できます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>はじめに</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="対象読者">
<p>
このドキュメントはFessの管理作業を担当するユーザーを対象にしています。
</p>
</section>
<section name="お読みになる前に">
<p>
このドキュメントでは、Fessの設定管理の方法を示しています。コンピュータ操作の基礎的な知識が必要になります。
</p>
</section>
<section name="オンラインでのアクセス">
<p>
ダウンロード、専門的サービス、サポート、その他の開発者情報については、次にアクセスしてください。
</p>
<ul>
<li>プロジェクトサイト: <a href="http://fess.codelibs.org/">http://fess.codelibs.org/</a></li>
</ul>
</section>
<section name="技術的なサポートの連絡先">
<p>
本製品に関する技術的質問で、ドキュメント内に解決策が得られない場合は、次にアクセスしてください。
</p>
<ul>
<li>公開フォーラム: <a href="http://sourceforge.jp/forum/?group_id=18580">http://sourceforge.jp/forum/?group_id=18580</a></li>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
<subsection name="商用サポート">
<p>
本製品に関する技術的対応や保守などの商用サポートが必要な場合は、<a href="http://www.n2sm.net/">N2SM, Inc.</a>にご相談ください。
</p>
</subsection>
</section>
<section name="関連サードパーティー Web サイトの参照">
<p>
Fess プロジェクトでは、このドキュメントに記載されているサードパーティーの Web サイトの有効性については責任を持ちません。
Fess プロジェクトはそのようなサイトやリソースを通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどについて、保証、責任、義務を負いません。
Fess プロジェクトはそのようなサイトやリソースと通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどを、使用または信用したり、それに関連して発生または申し立てられた、一切の損傷や損害に対しては責任または義務を負いません。
</p>
</section>
<section name="コメントおよび提案の送付方法">
<p>
Fess プロジェクトは、このドキュメントの改善に努めており、読者からのコメントおよび提案などを歓迎しています。
</p>
<ul>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
</section>
<section name="管理UIについて">
<subsection name="サポートブラウザ">
<p>管理 UI がサポートするブラウザは以下の通りです。</p>
<ul>
<li>Internet Explorer 7 以上</li>
<li>Firefox 4 以上</li>
<li>Chrome (最新版)</li>
<li>Safari (最新版)</li>
<li>Opera 11</li>
</ul>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ジョブログ</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>実行したジョブの結果を一覧として表示します。</p>
</section>
<section name="利用方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの利用者をクリックします。</p>
</subsection>
<subsection name="ジョブログ一覧">
<img src="/images/ja/9.1/admin/jobLog-1.png" alt="ジョブログ一覧" />
<p>実行したジョブのログが一覧されます。ジョブ名、ステータス、開始・完了時刻を確認することができます。また、詳細を選択して、各ログの詳細を確認することができます。</p>
</subsection>
<subsection name="ジョブログ詳細">
<p>ジョブのログ内容を確認できます。ジョブ名、ステータス、開始・完了時刻、結果などを表示します。</p>
<img src="/images/ja/9.1/admin/jobLog-2.png" alt="ジョブログ詳細" />
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ラベルの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ラベルに関する設定について説明します。ラベルはクロール設定で選択することで、検索結果に表示されるドキュメントを分類することができます。また、クロール設定で設定していない場合でもラベルの設定でラベルを付加するパスを正規表現で指定することができます。ラベルを登録している場合には、検索語入力欄の右側にラベル選択のプルダウンボックスが表示されます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのラベルをクリックします。</p>
<img src="/images/ja/9.1/admin/labelType-1.png" alt="ラベルの一覧"/>
<img src="/images/ja/9.1/admin/labelType-2.png" alt="ラベルの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="表示名">
<p>検索時のラベル選択プルダウンボックスに表示される名前を指定します。</p>
</subsection>
<subsection name="値">
<p>ドキュメントを分類するときの識別子を指定します。この値は Solr に送信されます。英数字で指定してください。</p>
</subsection>
<subsection name="クロール対象とするパス">
<p>ラベルを付加するパスを正規表現で設定します。複数行記述することで複数指定することができます。ここで指定したパスにマッチするドキュメントはクロール設定にかかわらず、ラベルが設定されます。</p>
</subsection>
<subsection name="クロール対象から除外するパス">
<p>クロール対象とするパスで対象から除外したいものを正規表現で設定します。複数行記述することで複数指定することができます。</p>
</subsection>
<subsection name="ロール">
<p>ラベルを表示するロールを指定します。</p>
</subsection>
<subsection name="表示順">
<p>ラベルの表示順を指定します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ログファイルのダウンロード</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、Fess で出力されるログファイルのダウンロードについて説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのログファイルをクリックします。</p>
<img src="/images/ja/9.1/admin/log-1.png" alt="セッション情報"/>
</subsection>
<subsection name="ダウンロード">
<p>表示されているログファイル名をクリックすると、ログファイルをダウンロードすることができます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>重複ホストの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、重複ホストに関する設定について説明します。重複ホストはクロール時に異なるホスト名を同一のものとして扱いたいときに利用します。たとえば、www.example.com と example.com を同じサイトとして扱いたい場合などで利用できます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの重複ホストをクリックします。</p>
<img src="/images/ja/9.1/admin/overlappingHost-1.png" alt="重複ホストの一覧"/>
<img src="/images/ja/9.1/admin/overlappingHost-2.png" alt="重複ホストの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="正規名">
<p>正規ホスト名を指定します。重複ホスト名は正規ホスト名に置き換えます。</p>
</subsection>
<subsection name="重複名">
<p>重複しているホスト名を指定します。置き換えたいホスト名を指定します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>パスマッピングの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、パスマッピングに関する設定について説明します。 パスマッピングは検索結果に表示するリンクを置き換えたい場合などに利用することができます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのパスマッピングをクリックします。</p>
<img src="/images/ja/9.1/admin/pathMapping-1.png" alt="パスマッピングの一覧"/>
<img src="/images/ja/9.1/admin/pathMapping-2.png" alt="パスマッピングの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="パスマッピング">
<p>パスマッピングは指定した正規表現でマッチする部分を置き換え文字列で置換します。 ローカルなファイルシステムをクロールした場合、環境によっては検索結果のリンクが有効でない場合があります。 そのような場合にパスマッピングを利用して、検索結果のリンクを制御できます。 パスマッピングは複数指定できます。</p>
</subsection>
<subsection name="正規表現">
<p>置換したい文字列を指定します。記述方法は <a href="http://java.sun.com/javase/ja/6/docs/ja/api/java/util/regex/Pattern.html">Java 6 の正規表現</a>に従います。</p>
</subsection>
<subsection name="置換文字">
<p>一致した正規表現を置き換える文字列を指定します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>リクエストヘッダーの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、リクエストヘッダーに関する設定について説明します。リクエストヘッダーの機能はドキュメントをクロールして取得するときのリクエストに付加するリクエストヘッダー情報になります。たとえば、認証システムでヘッダー情報を見て、特定の値があれば自動でログインした状態にするなどの場合に利用できます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのリクエストヘッダーをクリックします。</p>
<img src="/images/ja/9.1/admin/requestHeader-1.png" alt="リクエストヘッダーの一覧"/>
<img src="/images/ja/9.1/admin/requestHeader-2.png" alt="リクエストヘッダーの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="名前">
<p>リクエストに付加するときのリクエストヘッダー名を指定します。</p>
</subsection>
<subsection name="値">
<p>リクエストに付加するときのリクエストヘッダー値を指定します。</p>
</subsection>
<subsection name="ウェブ設定名">
<p>リクエストヘッダーを付加するウェブクロール設定名を選択します。選択したクロール設定だけでリクエストヘッダーに付加されます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ロールの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ロールに関する設定について説明します。ロールはクロール設定で選択することで、検索結果に表示されるドキュメントを分類することができます。利用方法については、<a href="../config/role-setting.html">ロールの設定</a>を参照してください。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのロールをクリックします。</p>
<img src="/images/ja/9.1/admin/roleType-1.png" alt="ロールの一覧"/>
<img src="/images/ja/9.1/admin/roleType-2.png" alt="ロールの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="表示名">
<p>一覧に表示される名前を指定します。</p>
</subsection>
<subsection name="値">
<p>ドキュメントを分類するときの識別子を指定します。この値は Solr に送信されます。英数字で指定してください。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ジョブの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ジョブに関する設定について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのジョブ管理をクリックします。</p>
<img src="/images/ja/9.1/admin/scheduledJob-1.png" alt="ジョブ一覧"/>
<img src="/images/ja/9.1/admin/scheduledJob-2.png" alt="ジョブの編集"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="名前">
<p>一覧で表示される名前です。</p>
</subsection>
<subsection name="対象">
<p>対象はジョブをバッチ等で直接コマンド実行するときに実行するかどうかの識別子として利用することができます。クロールをコマンド実行などしない場合は、「all」を指定してください。</p>
</subsection>
<subsection name="スケジュール">
<p>スケジュールの設定を行います。ここで設定したスケジュールでスクリプトで記述したジョブが実行されます。</p>
<p>記述形式はCronのような「秒 分 時 日 月 曜日 年(省略可)」の形式で記述します。たとえば、「0 0 12 ? * WED」の場合は、毎週水曜日の12:00pmにジョブを実行します。より細かい指定方法については「<a href="http://quartz-scheduler.org/documentation/quartz-2.2.x/tutorials/tutorial-lesson-06">Quartz</a>」を参照してください。</p>
</subsection>
<subsection name="実行方法">
<p>スクリプトの実行環境を指定します。現時点では「groovy」だけをサポートしています。</p>
</subsection>
<section name="スクリプト">
<p>ジョブの実行内容を実行方法で指定した言語で記述します。</p>
</section>
<section name="ログ">
<p>有効にすることでジョブログへ記録されます。</p>
</section>
<subsection name="クロールジョブ">
<p>有効にすることでクロールジョブとして扱われます。「システムの設定」でクロールの起動・停止対象となります。</p>
</subsection>
<subsection name="状態">
<p>ジョブの有効・無効の状態を指定します。無効にした場合はジョブは実行されません。</p>
</subsection>
<subsection name="ソート">
<p>ジョブ一覧での表示順を指定します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、管理用検索について説明します。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの検索をクリックします。</p>
<img src="/images/ja/9.1/admin/search-1.png" alt="管理用検索" />
</subsection>
<subsection name="検索一覧">
<p>指定した条件で検索することができます。通常の検索画面ではロールやブラウザの条件が暗黙的に付加されますが、この管理用検索では付加されません。表示された検索結果から特定なドキュメントをインデクスから削除することもできます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>検索ログ一覧</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、検索ログについて説明します。検索ログは利用者が検索画面で検索を行ったときにログされます。検索ログは検索語や日時が記録されます。また、検索結果をクリックした場合にクリックしURLも記録することができます。</p>
</section>
<section name="利用方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの検索ログをクリックします。</p>
<img src="/images/ja/9.1/admin/searchLog-1.png" alt="検索ログ" />
</subsection>
<subsection name="検索ログ一覧">
<p>検索語と日時が一覧されます。詳細でクリックした URL なども確認することができます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>統計</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、統計について説明します。 検索ログおよびクリックログを集計することができます。</p>
</section>
<section name="利用方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの統計をクリックします。</p>
<img src="/images/ja/9.1/admin/stats-1.png" alt="統計" />
</subsection>
<subsection name="統計">
<p>レポート種別を選択することで、確認する対象を選択することができます。指定された条件で多い順に表示されます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>システムの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、クロールに関するサーバー設定や Fess で登録している Solr に関する設定について説明します。Solr サーバーは設定ファイルによりグループ化されて登録されています。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのシステム設定をクリックします。</p>
<img src="/images/ja/9.1/admin/system-1.png" alt="システムの設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="システム状態">
<p>更新用のサーバーがドキュメントの追加など処理中の場合、実行中として表示されます。クロール処理が実行中の場合にはセッション ID が表示されます。Fess サーバーをシャットダウンする場合は、実行中ではないときにシャットダウンすると安全にシャットダウンすることができます。実行中に Fess をシャットダウンした場合は、クロール処理が終了するまでプロセスが終了しない場合があります。</p>
<p>停止中の場合はクロールの開始ボタンを押下することで、クロールを手動で実行することができます。</p>
</subsection>
<subsection name="検索用、更新用サーバー">
<p>検索用、更新用に利用されているサーバーグループ名が表示されます。</p>
</subsection>
<subsection name="Solr 状態設定">
<p>Fess では Solr サーバーをサーバー状態とインデックス状態の状態管理を行なっています。サーバー状態は Solr サーバーにアクセス可能かどうかを管理しています。インデックス状態はクロールが正しく完了できたかどうかを管理しています。検索はサーバー状態が有効であれば、インデックスの状態にかかわらず利用することができます。クロールはサーバー状態が有効かつインデックスの状態が準備中または完了の場合に正しく実行することができます。手動でクロールの開始を実行した場合は、インデックスの状態が準備中に自動で変化します。サーバー状態はサーバーが復旧すると自動で有効の状態に復旧します。</p>
</subsection>
<subsection name="Solr インスタンス">
<p>Solr サーバーのインスタンス状態を確認することができます。また、各インスタンスに対して、起動、停止、リロードのリクエストを発行することができます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>システム情報</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、現在稼働中のシステムに関する環境変数などのプロパティ情報を確認できます。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのシステム情報をクリックします。</p>
<img src="/images/ja/9.1/admin/systemInfo-1.png" alt="システム情報" sizeinfo="height=23cm" />
</subsection>
</section>
<section name="設定項目">
<subsection name="環境変数">
<p>サーバーの環境変数を一覧できます。</p>
</subsection>
<subsection name="システムプロパティ">
<p>Fess に設定されたシステムプロパティを一覧できます。</p>
</subsection>
<subsection name="Fess プロパティ">
<p>Fess の設定情報を確認できます。</p>
</subsection>
<subsection name="バグレポート用">
<p>バグを報告する際に添付するためのプロパティ一覧です。個人情報が含まれない値を抽出しています。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>利用者ログ</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、利用者ログについて説明します。利用者ログは利用者が検索画面で検索を行ったときに利用者を識別します。検索ログや人気URLの情報と結びつけて利用することができます。クロール全般の設定で本機能を無効にすることができます。</p>
</section>
<section name="利用方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューの利用者をクリックします。</p>
<img src="/images/ja/9.1/admin/userInfo-1.png" alt="利用者一覧" />
</subsection>
<subsection name="利用者一覧">
<p>利用者のIDが一覧されます。検索ログまたは人気URLのリンクを選択して、各ログの一覧を確認することができます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ウェブ認証に関する設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ウェブを対象としたクロールに対してウェブ認証が必要な場合の設定方法について説明します。Fess は BASIC 認証と DIGEST 認証に対するクロールに対応しています。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのウェブ認証をクリックします。</p>
<img src="/images/ja/9.1/admin/webAuthentication-1.png" alt="ウェブ認証の設定"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="ホスト名">
<p>認証が必要なサイトのホスト名を指定します。省略した場合は、指定したウェブクロール設定において、任意のホスト名で適用されます。</p>
</subsection>
<subsection name="ポート">
<p>認証が必要なサイトのポートを指定します。すべてのポートに対して適用したい場合は -1 を指定します。その場合は、指定したウェブクロール設定において、任意のポートで適用されます。</p>
</subsection>
<subsection name="レルム">
<p>認証が必要なサイトのレルム名を指定します。省略した場合は、指定したウェブクロール設定において、任意のレルム名で適用されます。</p>
</subsection>
<subsection name="認証方法">
<p>認証方法を選択します。BASIC 認証、DIGEST 認証または NTLM 認証を利用することができます。</p>
</subsection>
<subsection name="ユーザー名">
<p>認証サイトにログインするためのユーザー名を指定します。</p>
</subsection>
<subsection name="パスワード">
<p>認証サイトにログインするためのパスワードを指定します。</p>
</subsection>
<subsection name="パラメーター">
<p>認証サイトにログインするために必要な設定値がある場合に設定します。NTLM認証の場合、workstationとdomainの値を設定することができます。設定する場合には以下のように記述します。</p>
<source><![CDATA[
workstation=HOGE
domain=FUGA
]]></source>
</subsection>
<subsection name="ウェブ設定名">
<p>上記の認証設定を適用するウェブ設定名を選択します。ウェブクロール設定を事前に登録しておく必要があります。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,107 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ウェブサイトのクロールに関する設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>ここでは、ウェブを対象としたクロールに関する設定について説明します。</p>
<p>Fess で数十万件以上のドキュメントをインデックス化したい場合は、1 つのクロール設定を数万件以下にすることを推奨しています。1 つのクロール設定で数十万件を対象すると、インデックス化のパフォーマンスが低下する場合があります。</p>
</section>
<section name="設定方法">
<subsection name="表示方法">
<p>管理者アカウントでログイン後、メニューのウェブをクリックします。</p>
<img src="/images/ja/9.1/admin/webCrawlingConfig-1.png" alt="ウェブクロールの設定" sizeinfo="height=23cm"/>
</subsection>
</section>
<section name="設定項目">
<subsection name="設定名">
<p>一覧ページで表示される名前です。</p>
</subsection>
<subsection name="URL の指定">
<p>URL は複数指定できます。http: または https: で始まるように指定します。たとえば、</p>
<source><![CDATA[
http://localhost/
http://localhost:8080/
]]></source>
<p>のように指定します。</p>
</subsection>
<subsection name="URL のフィルタリング">
<p>正規表現で指定することによって、特定の URL パターンをクロールや検索の対象にしたり、除外できます。</p>
<table class="table table-striped table-bordered table-condensed" columninfo="lp{10cm}">
<caption>URLフィルタリング内容一覧</caption>
<tbody>
<tr>
<th>クロール対象とする URL</th>
<td>指定された正規表現の URL をクロールします。</td>
</tr>
<tr>
<th>クロール対象から除外するURL</th>
<td>指定された正規表現の URL をクロール対象としません。クロール対象とする URL が指定されていても、ここでの指定が優先されます。</td>
</tr>
<tr>
<th>検索対象とするURL</th>
<td>指定された正規表現の URL を検索対象します。検索除外対象とする URL と指定されていても、ここでの指定が優先されます。</td>
</tr>
<tr>
<th>検索対象から除外するURL</th>
<td>指定された正規表現の URL を検索対象としません。クロール対象から除外してしまうと以降の全てのリンクが検索対象とすることができませんが、クロール対象の一部だけ検索対象としない場合に指定します。</td>
</tr>
</tbody>
</table>
<p>たとえば、http://localhost/ 以下しかクロールしない場合は、クロール対象とする URL に</p>
<source><![CDATA[
http://localhost/.*
]]></source>
<p>また、拡張子が png のものを対象から除外したい場合は、除外する URL に</p>
<source><![CDATA[
.*\.png$
]]></source>
<p>と指定します。改行することで複数指定することが可能です。</p>
</subsection>
<subsection name="設定パラメータ">
<p>クロールに必要な設定情報を指定することができます。</p>
</subsection>
<subsection name="深さ">
<p>クロールしたドキュメント内に含まれるリンクを順に辿っていきますがその辿る深さを指定できます。</p>
</subsection>
<subsection name="最大アクセス数">
<p>クロールして取得するドキュメント数を指定できます。指定しない場合は、100,000件になります。</p>
</subsection>
<subsection name="ユーザーエージェント">
<p>クロール時に利用するユーザーエージェントを指定できます。</p>
</subsection>
<subsection name="スレッド数">
<p>クロールするスレッド数を指定します。5 を指定した場合、5 個のスレッドで同時にウェブサイトをクロールします。</p>
</subsection>
<subsection name="間隔">
<p>ドキュメントをクロールする間隔 (ミリ秒) です。5000 とした場合は 1 つのスレッドが 5 秒間隔でドキュメントを取得しにいきます。</p>
<p>スレッド数を 5 個、間隔を 1000 ミリ秒とした場合、1 秒間で 5 ドキュメントを取得しにいくことになります。ウェブサイトをクロールするときにはウェブサーバー側の負荷にもなるので、負荷をかけない十分な値を設定してください。</p>
</subsection>
<subsection name="ブースト値">
<p>このクロール設定で検索対象とした URL に重みを付けることができます。検索結果において、他のものより上に表示したい場合に利用します。標準では 1 です。大きい値ほど優先されて、検索結果の上位に表示されます。他の結果より確実に優先して表示したい場合は、10000 などの十分に大きな値を指定します。</p>
<p>指定できる値は 0 以上の整数です。この値は Solr にドキュメントを追加する際のブースト値として利用されます。</p>
</subsection>
<subsection name="ブラウザタイプ">
<p>選択されたブラウザタイプのデータとして、クロールしたドキュメントを登録します。PC しか選択されていない場合は、モバイル端末で検索しても結果に表示されません。特定のモバイル端末だけで表示したい場合にも利用できます。</p>
</subsection>
<subsection name="ロール">
<p>利用するユーザーが特定のロールのときだけに検索結果に表示できるように制御することができます。ロールはあらかじめ設定しておく必要があります。たとえば、ポータルサーバーなどログインを必要とするシステムにおいて、利用するユーザーにより検索結果を出し分けたい場合に利用できます。</p>
</subsection>
<subsection name="ラベル">
<p>検索結果をラベル付けすることができます。ラベルを指定すると、検索画面において、ラベルごとの検索などが可能になります。</p>
</subsection>
<subsection name="状態">
<p>有効にすることで、設定されているクロール時刻にクロールされます。一時的にクロールしないようにしたい場合に利用できます。</p>
</subsection>
</section>
<section name="その他">
<subsection name="サイトマップ">
<p>Fess ではサイトマップファイルをクロールして、その中に定義されている URL をクロール対象とすることができます。サイトマップは <a href="http://www.sitemaps.org/">http://www.sitemaps.org/</a> の仕様に従います。利用可能なフォーマットは XML Sitemaps、XML Sitemaps Index、テキスト (URL を改行で記述したもの) です。</p>
<p>サイトマップは URL に指定します。サイトマップは普通の XML ファイルやテキストであるため、クロール時にその URL が普通の XML ファイルなのかサイトマップなのかが区別できません。ですので、デフォルトでは sitemap.*.xml、sitemap.*.gz、sitemap.*txt であるファイル名の URL であればサイトマップとして処理します(webapps/fess/WEB-INF/classes/s2robot_rule.dicon でカスタマイズは可能)。</p>
<p>HTML ファイルをクロールするとリンクが次のクロール対象になりますが、サイトマップファイルをクロールするとその中の URL が次のクロール対象になります。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>設定ウィザード</title>
<author>曽根 孝明</author>
</properties>
<body>
<section name="概要">
<p>ここでは、設定ウィザードの紹介をします。</p>
<p>設定ウィザードを利用することで、簡単に Fess をセットアップすることができます。</p>
</section>
<section name="設定方法">
<subsection name="ウィザードによる設定">
<p>管理者アカウントでログイン後、メニューの設定ウィザードをクリックします。</p>
<img src="/images/ja/9.1/admin/config-wizard-1.png" alt="設定ウィザード" />
<p>クロール設定を行います。
クロール設定は、検索対象するURIを登録するものです。
クロール設定名の部分は、識別しやすい任意の名前をいれてください。
クロールパスの部分には、検索対象としたい URI を入れてください。</p>
<img src="/images/ja/9.1/admin/config-wizard-3.png" alt="クロール設定" />
<p>例えば、http://fess.codelibs.org/ を検索対象としたい場合、以下のようになります。</p>
<img src="/images/ja/9.1/admin/config-wizard-4.png" alt="クロール設定例" />
<p>ファイルシステムであれば、c:\Users\taro などのように入力します。</p>
<p>これで設定は完了です。「クロール開始」ボタンを押下することで、クロールが開始されます。「完了」ボタンを押下した場合、スケジューリングの設定で指定した時間になるまでは、クロールが開始されません。</p>
<img src="/images/ja/9.1/admin/config-wizard-5.png" alt="クロール開始" />
</subsection>
<subsection name="設定内容の変更">
<p>設定ウィザードで設定した内容は、クロール全般、ウェブ、ファイルシステムから変更できます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>データベースの変更</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>利用するデータベースには H2 Database と MySQL を利用するバイナリを提供しています。ソースコードを用いて設定を変更してビルドすることで他のデータベースを利用することができます。</p>
</section>
<section name="MySQLを利用する場合">
<subsection name="準備">
<p>MySQL の文字コードの設定をします。/etc/mysql/my.cnf などに以下の設定がなければ追加します。</p>
<source><![CDATA[
[mysqld]
character-set-server = utf8 # mysql 5.5 以降
# default-character-set = utf8 mysql 5.1以下
]]></source>
</subsection>
<subsection name="インストール">
<p>MySQL 用のバイナリをダウンロードして展開します。</p>
</subsection>
<subsection name="設定">
<p>データベースを作成します。</p>
<source><![CDATA[
$ mysql -u root -p
mysql> create database fess_db;
mysql> grant all privileges on fess_db.* to fess_user@localhost identified by 'fess_pass';
mysql> create database fess_robot;
mysql> grant all privileges on fess_robot.* to s2robot@localhost identified by 's2robot';
mysql> FLUSH PRIVILEGES;
]]></source>
<p>作成したデータベースにテーブルを作成します。DDL ファイルは extension/mysql にあります。</p>
<source><![CDATA[
$ mysql -u fess_user --password=fess_pass fess_db < extension/mysql/fess.ddl
$ mysql -u s2robot --password=s2robot fess_robot < extension/mysql/robot.ddl
]]></source>
<p>webapps/fess/WEB-INF/lib に mysql ドライバの jar を配置します。</p>
<source><![CDATA[
$ cd webapps/fess/WEB-INF/lib/
$ rm h2-1.*.jar
$ wget http://mirrors.ibiblio.org/pub/mirrors/maven2/mysql/mysql-connector-java/5.1.18/ \
mysql-connector-java-5.1.18.jar
$ cd ../../../../
]]></source>
<p>webapps/fess/WEB-INF/classes/jdbc.dicon を編集します。</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<!-- MySQL -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"com.mysql.jdbc.Driver"
</property>
<property name="URL">
"jdbc:mysql://localhost:3306/fess_db?" +
"noDatetimeStringSync=true&amp;" +
"zeroDateTimeBehavior=convertToNull&amp;" +
"useUnicode=true&amp;characterEncoding=UTF-8&amp;" +
"autoReconnect=true"
</property>
<property name="user">"fess_user"</property>
<property name="password">"fess_pass"</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<destroyMethod name="close"/>
</component>
<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
</components>
]]></source>
<p>webapps/fess/WEB-INF/classes/s2robot_jdbc.dicon を編集します。</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR2.1//DTD S2Container//EN"
"http://www.seasar.org/dtd/components21.dtd">
<components namespace="jdbc">
<include path="jta.dicon"/>
<!-- for MySQL -->
<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"com.mysql.jdbc.Driver"
</property>
<property name="URL">
"jdbc:mysql://localhost:3306/fess_robot?" +
"noDatetimeStringSync=true&amp;" +
"zeroDateTimeBehavior=convertToNull&amp;" +
"useUnicode=true&amp;characterEncoding=UTF-8&amp;" +
"autoReconnect=true"
</property>
<property name="user">"s2robot"</property>
<property name="password">"s2robot"</property>
</component>
<component name="connectionPool"
class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl">
<property name="timeout">600</property>
<property name="maxPoolSize">10</property>
<property name="allowLocalTx">true</property>
<property name="transactionIsolationLevel">
@java.sql.Connection@TRANSACTION_REPEATABLE_READ</property>
<destroyMethod name="close"/>
</component>
<component name="DataSource"
class="org.seasar.extension.dbcp.impl.DataSourceImpl"
/>
</components>
]]></source>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>クロールするファイルサイズの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ファイルサイズの設定方法">
<p>Fess のクロールするファイルサイズ上限を指定することができます。デフォルトでは HTML ファイルは 2.5M バイト、それ以外は 10M バイトまで処理します。扱うファイルサイズを変更したい場合は webapps/fess/WEB-INF/classes/s2robot_contentlength.dicon を編集します。標準の s2robot_contentlength.dicon は以下の通りです。</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component name="contentLengthHelper"
class="org.seasar.robot.helper.ContentLengthHelper" instance="singleton" >
<property name="defaultMaxLength">10485760L</property><!-- 10M -->
<initMethod name="addMaxLength">
<arg>"text/html"</arg>
<arg>2621440L</arg><!-- 2.5M -->
</initMethod>
</component>
</components>
]]></source>
<p>デフォルト値を変更したい場合は defaultMaxLength の値を変更します。扱うファイルサイズはコンテンツタイプごとに指定できます。HTML ファイルであれば、text/html と扱うファイルサイズの上限を記述します。</p>
<p>扱うファイルサイズの上限値を変更する場合は、使用するヒープメモリ量にも注意してください。設定方法については<a href="memory-config.html">メモリ関連</a>を参照してください。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ジオサーチ</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>緯度経度の位置情報を持つドキュメントをGoogleマップなどと連携して、ジオサーチを利用することができます。</p>
</section>
<section name="設定">
<subsection name="インデックス生成時">
<p>位置情報を格納するフィードとして location が定義されています。
インデックス生成時に Solr に緯度経度を 45.17614,-93.87341 のような形式で location フィードに設定して、ドキュメントを登録します。
また、緯度経度を検索結果として表示したい場合は、latitude_sとlongitude_sのようなフィールドとして値を設定します。
*_s は Solr の文字列のダイナミックフィールドとして利用できます。</p>
</subsection>
<subsection name="検索時">
<p>検索時にはリクエストパラメータにlatitude、longitude、distanceで値を指定します。
緯度情報 (latitude, longitude) を中心にした distance で指定した距離 (km) に存在する結果を表示します。
緯度経度および距離は Double 型として扱われます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>インデックスの管理</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="インデックスデータのバックアップとリストア">
<p>インデックスデータは Solr により管理されています。インデックスデータは数ギガなどのサイズにもなるケースもあり、Fess の管理画面からはバックアップすることはできません。</p>
<p>インデックスデータのバックアップが必要な場合は、Fess を停止してから solr/core1/data および solr/core1-suggest/data ディレクトリをバックアップしてください。また、リストアする場合はバックアップしたインデックスデータを元に戻してください。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>はじめに</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="対象読者">
<p>
このドキュメントは、Fessの設定作業を担当するユーザーを対象にしています。
</p>
</section>
<section name="お読みになる前に">
<p>
このドキュメントでは、Fessの設定方法を示しています。コンピュータ操作の基礎的な知識が必要になります。
</p>
</section>
<section name="オンラインでのアクセス">
<p>
ダウンロード、専門的サービス、サポート、その他の開発者情報については、次にアクセスしてください。
</p>
<ul>
<li>プロジェクトサイト: <a href="http://fess.codelibs.org/">http://fess.codelibs.org/</a></li>
</ul>
</section>
<section name="技術的なサポートの連絡先">
<p>
本製品に関する技術的質問で、ドキュメント内に解決策が得られない場合は、次にアクセスしてください。
</p>
<ul>
<li>公開フォーラム: <a href="http://sourceforge.jp/forum/?group_id=18580">http://sourceforge.jp/forum/?group_id=18580</a></li>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
<subsection name="商用サポート">
<p>
本製品に関する技術的対応や保守などの商用サポートが必要な場合は、<a href="http://www.n2sm.net/">N2SM, Inc.</a>にご相談ください。
</p>
</subsection>
</section>
<section name="関連サードパーティー Web サイトの参照">
<p>
Fess プロジェクトでは、このドキュメントに記載されているサードパーティーの Web サイトの有効性については責任を持ちません。
Fess プロジェクトはそのようなサイトやリソースを通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどについて、保証、責任、義務を負いません。
Fess プロジェクトはそのようなサイトやリソースと通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどを、使用または信用したり、それに関連して発生または申し立てられた、一切の損傷や損害に対しては責任または義務を負いません。
</p>
</section>
<section name="コメントおよび提案の送付方法">
<p>
Fess プロジェクトは、このドキュメントの改善に努めており、読者からのコメントおよび提案などを歓迎しています。
</p>
<ul>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
</section>
</body>
</document>

View file

@ -0,0 +1,45 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>既存の Tomcat にインストール</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>
Fess の標準配布物は Tomcat に配備済みの状態で配布されています。
Fess は Tomcat に依存していないので、任意の Java アプリケーションサーバーに配備することも可能です。
ここでは、既に利用している Tomcat に Fess を配備する方法を説明します。
</p>
</section>
<section name="ダウンロード">
<p>Fess サーバーを<a href="http://sourceforge.jp/projects/fess/releases/">ここ</a>からダウンロードします。</p>
</section>
<section name="設定">
<p>
ダウンロードした Fess サーバーを展開します。
展開した Fess サーバーのトップディレクトリを $FESS_HOME とします。
既存の Tomcat 7 のトップディレクトリを $TOMCAT_HOME とします。
必要な Fess サーバーのデータをコピーします。
</p>
<source><![CDATA[
cp $FESS_HOME/bin/setenv.bat $TOMCAT_HOME/bin
cp $FESS_HOME/bin/setenv.sh $TOMCAT_HOME/bin
cp $FESS_HOME/conf/tomcat-users.xml $TOMCAT_HOME/conf
cp $FESS_HOME/conf/server.xml $TOMCAT_HOME/conf
cp -r $FESS_HOME/solr $TOMCAT_HOME/
cp -r $FESS_HOME/webapps/solr $TOMCAT_HOME/webapps
cp -r $FESS_HOME/webapps/fess $TOMCAT_HOME/webapps
# 以下は省略可
cp $FESS_HOME/bin/crawler.sh $TOMCAT_HOME/bin
cp $FESS_HOME/bin/service.bat $TOMCAT_HOME/bin
]]></source>
<p>
コピー先のファイルに変更など加えている場合は、diff コマンドなどで更新差分を確認して差分だけを適用します。
</p>
</section>
<section name="起動">
<p>startup.* で通常の Tomcat と同様に起動して <a href="http://localhost:8080/fess/">http://localhost:8080/fess/</a> にアクセスします。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ログの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ログのファイル">
<p>Fess が出力するログファイルを以下にまとめます。</p>
<table class="table table-striped table-bordered table-condensed" columninfo="lp{10cm}">
<caption>ログファイル一覧</caption>
<tbody>
<tr>
<th>ファイル名</th>
<th>内容</th>
</tr>
<tr>
<td>webapps/fess/WEB-INF/logs/fess.out</td>
<td>Fess サーバのログ。管理画面や検索画面で操作した時のログなどが出力される。</td>
</tr>
<tr>
<td>webapps/fess/WEB-INF/logs/fess_crawler.out</td>
<td>クロール時のログ。クロール実行時のログが出力される。</td>
</tr>
<tr>
<td>logs/catalina.out</td>
<td>Fess サーバ(Tomcat)のログ。Tomcat 関連のログが出力される。</td>
</tr>
<tr>
<td>logs/solr.log</td>
<td>Fess サーバ(Solr)のログ。Solr 関連のログが出力される。</td>
</tr>
</tbody>
</table>
<p>動作に問題が発生した場合には上記のログを確認してください。</p>
</section>
<section name="ログの設定">
<p>ログを出力する内容は、webapps/fess/WEB-INF/classes/log4j.xml で設定します。デフォルトでは INFO レベルとして出力しています。</p>
<p>たとえば、Fess が Solr に対してドキュメントを投入処理をするログをより出力したい場合は log4j.xml で以下の部分をコメントアウトから外します。</p>
<source><![CDATA[
<logger name="jp.sf.fess.solr" >
<level value ="debug" />
</logger>
]]></source>
<p>ログ出力に関する細かい設定が必要な場合は、Log4J のドキュメントを参照してください。</p>
<subsection name="クロールの通信内容">
<p>問題解決するために、クロール時の HTTP アクセスの内容を確認したい場合は、HttpClient のログレベルを変更することで確認することができます。</p>
<source><![CDATA[
<logger name="org.apache.http" >
<level value ="debug" />
</logger>
]]></source>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,52 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>使用メモリー関連の設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="メモリーの設定について">
<p>Java ではプロセスごとに使用する最大メモリが設定されています。ですので、サーバーに 8G の物理メモリがあったとしてもプロセスでの上限以上のメモリを使用することはありません。クロールのスレッド数や間隔により消費するメモリも大きく変わります。メモリが足りない状況になった場合は以降の説明の手順で設定を変更してください。</p>
</section>
<section name="ヒープメモリーの最大値変更">
<p>クロール設定の内容によっては以下のような OutOfMemory エラーが発生する場合があります。</p>
<source><![CDATA[
java.lang.OutOfMemoryError: Java heap space
]]></source>
<p>発生した場合は ヒープメモリの最大値を増やしてください。 bin/setenv.[sh|bat] に -Xmx1g のように変更します(この場合は最大値を 1G に設定)。</p>
<source><![CDATA[
Windowsの場合
...-server -Xmx1g
Unixの場合
...-server -Xmx1g"
]]></source>
</section>
<section name="クローラ側のメモリー最大値変更">
<p>
クローラ側のメモリーの最大値も変更可能です。デフォルトでは、512Mとなっています。
</p>
<p>
変更するには、webapps/fess/WEB-INF/classes/fess.dicon の crawlerJavaOptions のコメントアウトを外し、-Xmx1g のように変更します(この場合は最大値を 1G に設定)。
</p>
<source><![CDATA[
<property name="crawlerJavaOptions">new String[] {
"-Djava.awt.headless=true",
"-server",
"-Xmx1g",
"-XX:MaxPermSize=128m",
"-XX:-UseGCOverheadLimit",
"-XX:+UseConcMarkSweepGC",
"-XX:CMSInitiatingOccupancyFraction=75",
"-XX:+CMSIncrementalMode",
"-XX:+CMSIncrementalPacing",
"-XX:CMSIncrementalDutyCycleMin=0",
"-XX:+UseParNewGC",
"-XX:+UseStringCache",
"-XX:+UseTLAB",
"-XX:+DisableExplicitGC"
}</property>
]]></source>
</section>
</body>
</document>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>携帯端末情報の設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="携帯端末情報の更新">
<p>携帯端末情報は<a class="externalLink" href="http://valueengine.jp/">ValueEngine社</a>より提供されるものを利用しています。最新の携帯端末情報を利用したい場合は、端末プロファイルをダウンロードして、webapps/fess/WEB-INF/classes/device / に _YYYY-MM-DD を取り除いて保存します。 再起動後に変更が有効になります。</p>
<source><![CDATA[
ProfileData_YYYY-MM-DD.csv -> ProfileData.csv
UserAgent_YYYY-MM-DD.csv -> UserAgent.csv
DisplayInfo_YYYY-MM-DD.csv -> DisplayInfo.csv
]]></source>
</section>
</body>
</document>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>パスのエンコーディングの変更</title>
<author>曽根 孝明</author>
</properties>
<body>
<section name="パスのエンコーディングの変更について">
<p>html以外のファイルで、参照元とファイル名の文字コードが異なる場合、検索結果のリンクの文字列が文字化けします。</p>
<p>たとえば、テスト.txt というファイルの中身がUTF-8 で書かれていて、ファイル名が Shift_JIS の場合、リンクの文字列が文字化けします。</p>
</section>
<section name="設定方法">
<p>例えば下記のように webapps/fess/WEB-INF/classes/s2robot_transformer.dicon を修正することで、パスを Shift_JIS で解決するようになります。</p>
<source><![CDATA[
<component name="fessFileTransformer" class="jp.sf.fess.transformer.FessFileTransformer" instance="singleton">
<property name="name">"fessFileTransformer"</property>
<property name="ignoreEmptyContent">true</property>
<property name="encoding">"Shift_JIS"</property>
</component>
]]></source>
</section>
</body>
</document>

View file

@ -0,0 +1,90 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>パスワード付きPDF</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="パスワード付きPDFの対応方法">
<p>
パスワードが設定されたPDFを検索対象にするためには設定ファイルで対象ファイルのパスワードを登録しておく必要があります
</p>
</section>
<section name="設定">
<p>
まず、webapps/fess/WEB-INF/classes/s2robot_extractor.dicon を以下のように作成します。
今回はtest_〜.pdf というファイルに pass というパスワードが設定されている場合です.
対象ファイルが複数ある場合はaddPassword で複数設定します.
</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component name="tikaExtractor" class="org.seasar.robot.extractor.impl.TikaExtractor"/>
<component name="msWordExtractor"
class="org.seasar.robot.extractor.impl.MsWordExtractor"/>
<component name="msExcelExtractor"
class="org.seasar.robot.extractor.impl.MsExcelExtractor"/>
<component name="msPowerPointExtractor"
class="org.seasar.robot.extractor.impl.MsPowerPointExtractor"/>
<component name="msPublisherExtractor"
class="org.seasar.robot.extractor.impl.MsPublisherExtractor"/>
<component name="msVisioExtractor"
class="org.seasar.robot.extractor.impl.MsVisioExtractor"/>
<component name="pdfExtractor" class="org.seasar.robot.extractor.impl.PdfExtractor">
<initMethod name="addPassword">
<!-- 正規表現で対象ファイルのパスを指定 -->
<arg>".*test_.*.pdf"</arg>
<!-- パスワード -->
<arg>"pass"</arg>
</initMethod>
</component>
<component name="textExtractor" class="org.seasar.robot.extractor.impl.TextExtractor"/>
<component name="htmlExtractor" class="org.seasar.robot.extractor.impl.HtmlExtractor"/>
<component name="xmlExtractor" class="org.seasar.robot.extractor.impl.XmlExtractor"/>
<component name="htmlXpathExtractor"
class="org.seasar.robot.extractor.impl.HtmlXpathExtractor">
<initMethod name="addFeature">
<arg>"http://xml.org/sax/features/namespaces"</arg>
<arg>"false"</arg>
</initMethod>
</component>
...
]]></source>
<p>次に、webapps/fess/WEB-INF/classes/s2robot_rule.dicon に以下を編集します。</p>
<source><![CDATA[
...
<component name="fsFileRule" class="org.seasar.robot.rule.impl.RegexRule" >
<property name="ruleId">"fsFileRule"</property>
<property name="responseProcessor">
<component class="org.seasar.robot.processor.impl.DefaultResponseProcessor">
<property name="transformer">fessFileTransformer</property>
</component>
</property>
<property name="allRequired">true</property>
<initMethod name="addRule">
<arg>"url"</arg>
<arg>"file:.*"</arg>
</initMethod>
<initMethod name="addRule">
<arg>"mimeType"</arg>
<!-- Supported MIME type -->
<arg>
"(application/xml"
+ "|application/xhtml+xml"
+ "|application/rdf+xml"
+ "|application/pdf"
+ "|text/xml"
+ "|text/xml-external-parsed-entity"
+ "|text/html)"
</arg>
</initMethod>
</component>
...
]]></source>
<p>上記を設定したら、Fess を起動してクロールを実行してください。基本的な利用方法は特に変わりません。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ステミング設定</title>
<author>曽根 孝明</author>
</properties>
<body>
<section name="ステミングについて">
<p>Fess ではインデックス作成や検索の際、ステミングという処理が行われています。</p>
<p>これは英単語を正規化する処理であり、例えば、recharging や rechargable といった単語は recharg という形に正規化されます。これによって、recharging という語で検索を行った場合でもrechargableという語にヒットし、検索漏れが少なくなることが期待されます。</p>
</section>
<section name="protwords.txtについて">
<p>ステミング処理は基本的にルールベースの処理であるため、意図しない正規化が行われてしまう可能性があります。例えば、Maine(アメリカの州の名前)という語は main に正規化されてしまいます。</p>
<p>このような場合、protwords.txt に Maine を追加することで、ステミング処理の対象から除外できます。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>プロキシの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="クローラ用プロキシの設定">
<p>イントラネット内から外部サイトをクロールするような場合は、ファイアフォールにクロールがブロックされてしまうかもしれません。そのような場合にはクローラ用のプロキシを設定してください。</p>
</section>
<section name="設定方法">
<p>下記の内容で webapps/fess/WEB-INF/classes/s2robot_client.dicon を作成することでプロキシが設定されます。</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<include path="s2robot_robotstxt.dicon"/>
<include path="s2robot_contentlength.dicon"/>
<component name="internalHttpClient"
class="org.seasar.robot.client.http.HcHttpClient" instance="prototype">
<property name="cookiePolicy">@org.apache.http.client.params.CookiePolicy@BEST_MATCH</property>
<property name="clientConnectionManager">clientConnectionManager</property>
<property name="proxyHost">"プロキシサーバー名(ex. 192.168.1.1)"</property>
<property name="proxyPort">プロキシサーバーのポート(ex. 8080) (" は不要)</property>
<!-- プロキシに認証がある場合
<property name="proxyCredentials">
<component class="org.apache.http.auth.UsernamePasswordCredentials">
<arg>"プロキシ用ユーザー名"</arg>
<arg>"プロキシ用パスワード"</arg>
</component>
</property>
-->
</component>
<component name="httpClient"
class="org.seasar.robot.client.FaultTolerantClient" instance="prototype">
<property name="robotClient">internalHttpClient</property>
<property name="maxRetryCount">5</property>
<property name="retryInterval">500</property>
</component>
<component name="clientConnectionManager"
class="org.apache.http.impl.conn.PoolingClientConnectionManager">
<arg>
<component class="org.apache.http.conn.scheme.SchemeRegistry">
<initMethod name="register">
<arg>
<component class="org.apache.http.conn.scheme.Scheme">
<arg>"http"</arg>
<arg>80</arg>
<arg>@org.apache.http.conn.scheme.PlainSocketFactory@getSocketFactory()</arg>
</component>
</arg>
</initMethod>
<initMethod name="register">
<arg>
<component class="org.apache.http.conn.scheme.Scheme">
<arg>"https"</arg>
<arg>443</arg>
<arg>@org.apache.http.conn.ssl.SSLSocketFactory@getSocketFactory()</arg>
</component>
</arg>
</initMethod>
</component>
</arg>
<arg>5</arg><!-- timeToLive -->
<arg>@java.util.concurrent.TimeUnit@MINUTES</arg><!-- tunit -->
<!-- Increase max total connection to 200 -->
<property name="maxTotal">200</property>
<!-- Increase default max connection per route to 20 -->
<property name="defaultMaxPerRoute">20</property>
<destroyMethod name="shutdown"></destroyMethod>
</component>
<component name="internalFsClient"
class="org.seasar.robot.client.fs.FileSystemClient" instance="prototype">
<property name="charset">"UTF-8"</property>
</component>
<component name="fsClient"
class="org.seasar.robot.client.FaultTolerantClient" instance="prototype">
<property name="robotClient">internalFsClient</property>
<property name="maxRetryCount">5</property>
<property name="retryInterval">500</property>
</component>
<component name="internalSmbClient"
class="org.seasar.robot.client.smb.SmbClient" instance="prototype">
<property name="charset">"UTF-8"</property>
<!-- ntlmPasswordAuthentication -->
</component>
<component name="smbClient"
class="org.seasar.robot.client.FaultTolerantClient" instance="prototype">
<property name="robotClient">internalSmbClient</property>
<property name="maxRetryCount">5</property>
<property name="retryInterval">500</property>
</component>
<component name="clientFactory"
class="org.seasar.robot.client.S2RobotClientFactory" instance="prototype">
<initMethod name="addClient">
<arg>{"http:.*", "https:.*"}</arg>
<arg>httpClient</arg>
</initMethod>
<initMethod name="addClient">
<arg>"file:.*"</arg>
<arg>fsClient</arg>
</initMethod>
<initMethod name="addClient">
<arg>"smb:.*"</arg>
<arg>smbClient</arg>
</initMethod>
</component>
</components>
]]></source>
</section>
</body>
</document>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>レプリケーションの設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="レプリケーションの設定について">
<p>インデックスのレプリケーションは Solr のレプリケーション機能で設定します。クロールおよびインデックス作成用の Fess と検索用 Fess の 2 台のサーバーを構築することで、インデックス作成時にかかる負荷を分散することができます。</p>
</section>
<section name="構築方法">
<subsection name="インデックス作成用 Fess の構築">
<p>Fess をダウンロードして、インストールします。ここでは、MasterServer という名前のホストにインストールしたとします。<code>/opt/fess_master/</code> にインストールしたとします。solr/core1/conf/solrconfig.xml を以下のように編集します。</p>
<source><![CDATA[
...
<requestHandler name="/replication" >
<lst name="master">
<str name="replicateAfter">startup</str>
<str name="replicateAfter">optimize</str>
<str name="backupAfter">optimize</str>
<str name="confFiles">schema.xml,stopwords.txt,stopwords_ja.txt,elevate.xml,
stoptags_ja.txt,synonyms.txt,mapping_ja.txt,mapping-FoldToASCII.txt,
mapping-ISOLatin1Accent.txt,protwords.txt,compositePOS.txt,spellings.txt,
currency.xml</str>
</lst>
<str name="maxNumberOfBackups">1</str>
</requestHandler>
...
]]></source>
<p>Fess の起動後、通常の構築と同様にクロール設定を登録します。インデックス作成用 Fess の構築手順は通常の構築手順と特に変わりません。</p>
</subsection>
<subsection name="検索用 Fess の構築">
<p>Fess をダウンロードして、インストールします。<code>/opt/fess_slave/</code> にインストールしたとします。solr/core1/conf/solrconfig.xml を以下のように編集します。</p>
<source><![CDATA[
...
<requestHandler name="/replication" >
<lst name="slave">
<str name="masterUrl">http://MasterServer:8080/solr/core1/replication</str>
<str name="pollInterval">00:00:60</str>
<str name="compression">internal</str>
<str name="httpConnTimeout">5000</str>
<str name="httpReadTimeout">10000</str>
<str name="httpBasicAuthUser">solradmin</str>
<str name="httpBasicAuthPassword">solradmin</str>
</lst>
</requestHandler>
...
]]></source>
<p>Fess を起動します。</p>
</subsection>
<subsection name="インデックスの同期">
<p>上記までの設定で、インデックス作成用 Fess がクロール後、最適化 (optimize) されると、検索用 Fess にインデックスがコピーされます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,85 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ロールベース検索の設定</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ロールベース検索とは">
<p>Fess では任意の認証システムで認証されたユーザーの認証情報を元に検索結果を出し分けることができます。たとえば、ロールaを持つユーザーAは検索結果にロールaの情報が表示されるが、ロールaを持たないユーザーBは検索してもそれが表示されません。この機能を利用することで、ポータルやシングルサインオン環境でログインしているユーザーの所属する部門別や役職別などに検索を実現することができます。</p>
<p>Fess のロールベース検索ではロール情報を以下より取得できます。</p>
<ul>
<li>リクエストパラメータ</li>
<li>リクエストヘッダー</li>
<li>クッキー</li>
<li>J2EE の認証情報</li>
</ul>
<p>ポータルやエージェント型シングルサインオンシステムでは認証時に Fess の稼働しているドメインとパスに対してクッキーで認証情報を保存することで、ロール情報を取得することができます。また、リバースプロキシ型シングルサインオンシステムでは Fess へのアクセス時にリクエストパラメータやリクエストヘッダーに認証情報を付加することでロール情報を取得することができます。</p>
</section>
<section name="ロールベース検索の設定">
<p>ここでは J2EE の認証情報を利用したロールベース検索の設定方法を説明します。</p>
<subsection name="tomcat-users.xmlの設定">
<p>conf/tomcat-users.xml にロールとユーザーを追加します。今回は role1 ロールでロールベース検索を行います。ログインするユーザーは role1 になります。</p>
<source><![CDATA[
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="fess"/>
<role rolename="solr"/>
<role rolename="role1"/>
<user username="admin" password="admin" roles="fess"/>
<user username="solradmin" password="solradmin" roles="solr"/>
<user username="role1" password="role1" roles="role1"/>
</tomcat-users>
]]></source>
</subsection>
<subsection name="fess.diconの設定">
<p>webapps/fess/WEB-INF/classes/fess.dicon を以下のように設定します。</p>
<source><![CDATA[
:
<component name="roleQueryHelper" class="jp.sf.fess.helper.impl.RoleQueryHelperImpl">
<property name="defaultRoleList">
{"guest"}
</property>
:
]]></source>
<p>defaultRoleList を設定することで、認証情報がない場合のロール情報を設定できます。設定することでログインしていないユーザーに対して、ロールが必要な検索結果を表示させないようにできます。</p>
</subsection>
<subsection name="web.xmlの設定">
<p>webapps/fess/WEB-INF/web.xml を以下のように設定します。</p>
<source><![CDATA[
:
<security-constraint>
<web-resource-collection>
<web-resource-name>Fess Authentication</web-resource-name>
<url-pattern>/login/login</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>fess</role-name>
<role-name>role1</role-name>
</auth-constraint>
</security-constraint>
:
<security-role>
<role-name>fess</role-name>
</security-role>
<security-role>
<role-name>role1</role-name>
</security-role>
:
]]></source>
</subsection>
<subsection name="Fess の管理画面での設定">
<p>Fess を起動して管理者としてログインします。メニューのロールから設定名を Role1 (設定名は任意)、値を role1 でロールを登録します。あとは role1 を持つユーザーで利用したいクロール設定で、Role1 を選択してクロール設定を登録してクロールします。</p>
</subsection>
<subsection name="ロールでログイン">
<p>管理画面からログアウトします。role1 ユーザーでログインします。ログインに成功すると検索画面のトップにリダイレクトされます。</p>
<p>通常通り検索すると、クロール設定で Role1 のロール設定されたものだけが表示されます。</p>
<p>また、ログインしていない状態での検索は、guest ユーザーによる検索となります。</p>
</subsection>
<subsection name="ロールのログアウト">
<p>管理者以外のロールでログインした状態で http://localhost:8080/fess/admin にアクセスすると、ログアウトするかどうかの画面が表示されます。ログアウトボタンを押下することでログアウトされます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ポート変更</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ポートの変更">
<p>Fess がデフォルトで利用するポートは 8080 になります。 変更するには以下の手順で変更します。</p>
<subsection name="Tomcat のポート変更">
<p>Fess が利用している Tomcat のポートを変更します。 変更は conf/server.xml に記述されている以下のものを変更します。</p>
<ul>
<li>8080: HTTP アクセスポート</li>
<li>8005: シャットダウンポート</li>
<li>8009: AJP ポート</li>
<li>8443: SSL の HTTP アクセスポート (デフォルトは無効)</li>
<li>19092: データベースポート(h2databaseが利用)</li>
</ul>
</subsection>
<subsection name="Solr の設定">
<p>標準構成では、Solr も同じ Tomcat の設定を利用しているので、Tomcat のポートを変更した場合は、Fess の Solr サーバーの参照先情報も変更する必要があります。</p>
<p>webapps/fess/WEB-INF/classes/app.dicon の以下の箇所を変更します。</p>
<source><![CDATA[
<property name="managerUrl">"http://localhost:8080/manager/text/"</property>
]]></source>
<p>webapps/fess/WEB-INF/classes/solrlib.dicon の以下の箇所を変更します。</p>
<source><![CDATA[
<arg>"http://localhost:8080/solr/core1"</arg>
]]></source>
<p>solr/core1/conf/solrconfig.xml の以下の箇所を変更します。</p>
<source><![CDATA[
<arg>http://localhost:8080/solr/core1-suggest</arg>
]]></source>
<p>
<b>注: Tomcat のポートを変更した場合は上記のポートを同様に変更しないと、Solr サーバーにアクセスできないために検索画面やインデックス更新時にエラーが表示されます。</b>
</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ダイナミックフィールド</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="Solr のダイナミックフィールド">
<p>Solr は対象ドキュメントを項目(フィールド)ごとに登録するためにスキーマを定義されています。Fess で利用する Solr のスキーマは solr/core1/conf/schema.xml に定義されています。title や content など標準のフィールドと、自由にフィールド名を定義できるダイナミックフィールドが定義されています。詳細なパラメータ値については Solr のドキュメントを参照してください。</p>
</section>
<section name="利用方法">
<p>ダイナミックフィールドを利用する場面が多いのはデータベースクロールなどでデータストアクロール設定で登録するなどだと思います。データベースクロールでダイナミックフィールドに登録する方法は、スクリプトに other_t = hoge のように記述することで hoge カラムのデータを Solr の other_t フィールドに入れることができます。</p>
<p>次にダイナミックフィールドに保存されたデータを検索するためには webapps/fess/WEB-INF/classes/app.dicon に利用するフィールドを追加する必要があります。以下のように other_t を追加します。</p>
<source><![CDATA[
<component name="queryHelper" class="jp.sf.fess.helper.impl.QueryHelperImpl">
<property name="searchFields">new String[]{"url", "host", "site",
"title", "content", "contentLength", "lastModified", "mimetype",
"label", "segment", "other_t" }</property>
</component>
]]></source>
<p>また、ダイナミックフィールドに保存されたデータを Solr から取り出すためには利用するフィールドを追加する必要があります。以下のように other_t を追加します。</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", "other_t" }</property>
</component>
]]></source>
<p>上記の設定で Solr から値を取得できているので、ページ上に表示するために JSP ファイルを編集します。管理画面にログインして、デザインを表示します。検索結果の表示は検索結果ページ(コンテンツ)で表示されるので、この JSP ファイルを編集します。other_t の値を表示したい箇所で ${f:h(doc.other_t)} とすることで登録した値を表示することができます。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>Solr障害時の動作</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="概要">
<p>Fess では Solr サーバーをグループ化して、複数のグループを管理することができます。Fess はサーバーおよびグループの情報を保持して、Solr サーバーにアクセスできなくなった場合はサーバー及びグループの状態を変更します。</p>
<p>Solr サーバーの状態情報は、管理画面のシステム設定で変更することができます。minActiveServer、maxErrorCount、maxRetryStatusCheckCount、maxRetryUpdateQueryCount は webapps/fess/WEB-INF/classes/solrlib.dicon で定義することができます。</p>
</section>
<section name="障害の Solr グループの動作">
<ul>
<li>Solr グループ内に有効状態の Solr サーバー台数が minActiveServer 以下になった場合は Solr グループが無効状態になります。</li>
<li>Solr グループ内に有効状態の Solr サーバー台数が minActiveServer 以下になっているが Solr グループが無効状態になっていない場合、無効状態の Solr サーバーの状態を maxRetryStatusCheckCount 回確認して、Solr サーバーにアクセスできる場合は Solr サーバーの状態を無効状態から有効状態に変更します。インデックス破損状態の Solr サーバーはアクセスできたとしても有効状態に変更されません。</li>
<li>無効状態の Solr グループは利用されません。</li>
<li>Solr グループを有効状態にするためには、管理画面のシステム設定で Solr グループ内の Solr サーバーの状態を有効に変更します。</li>
</ul>
</section>
<section name="検索時の障害の動作">
<ul>
<li>検索クエリーは有効状態の Solr グループに送信できます。</li>
<li>検索クエリーは有効状態の Solr サーバーだけに送信されます。</li>
<li>Solr グループ内に複数の Solr サーバーが登録されている場合は、利用している回数が少ない Solr サーバーに検索クエリーを送信します。</li>
<li>Solr サーバーに送信した検索クエリーが maxErrorCount 以上失敗した場合は Solr サーバーを無効状態に変更します。</li>
</ul>
</section>
<section name="更新時の障害の動作">
<ul>
<li>更新クエリーは有効状態の Solr グループに送信できます。。</li>
<li>更新クエリーは有効状態の Solr サーバーだけに送信されます。</li>
<li>Solr グループ内に複数の Solr サーバーが登録されている場合は、有効状態の Solr サーバーすべてに更新クエリーを送信します。</li>
<li>Solr サーバーに送信した更新クエリーが maxRetryUpdateQueryCount 以上失敗した場合は Solr サーバーをインデックス破損状態に変更します。</li>
</ul>
</section>
</body>
</document>

View file

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>索引文字列抽出についての設定</title>
<author>曽根 孝明</author>
</properties>
<body>
<section name="索引文字列抽出について">
<p>検索のためのインデックスを作成する際、索引として登録するために文書を切り分ける必要があります。このために使用されるのが、トークナイザーです。</p>
<p>基本的に、トークナイザーによって切り分けられた単位よりも小さいものは、検索を行ってもヒットしません。例えば、「東京都に住む」という文を考えます。いま、この文が「東京都」「に」「住む」というようにトークナイザーによって分割されたとします。この場合、「東京都」という語で検索を行った場合はヒットします。しかし、「京都」という語で検索を行った場合はヒットしません。そのためトークナイザーの選択は重要です。</p>
<p>Fess の場合デフォルトでは StandardTokenizer+CJKBigramFilter が使用されていますが、schema.xml の analyzer 部分を設定することでトークナイザーを変更することができます。</p>
<subsection name="CJKBigramFilterについて">
<p>StandardTokenizer+CJKBigramFilter は日本語のようなマルチバイトの文字列に対しては bi-gram 、つまり二文字ずつインデックスを作成します。この場合、1文字の語を検索することはできません。</p>
</subsection>
<subsection name="StandardTokenizerについて">
<p>StandardTokenizer は日本語のようなマルチバイトの文字列に対しては uni-gram 、つまり一文字ずつインデックスを作成します。そのため、検索漏れが少なくなります。また、CJKTokenizerの場合、1文字のクエリを検索することができませんが、StandardTokenizerを使用すると検索可能になります。しかし、インデックスサイズが増えるので注意してください。</p>
<p>下記の例のように solr/core1/conf/schema.xml の analyzer 部分を変更することで、StandardTokenizer を使用できます。</p>
<source><![CDATA[
<schema name="fess" version="1.4">
<types>
<fieldType name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping_ja.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
:
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping_ja.txt"/>
<tokenizer class="solr.StandardTokenizerFactory"/>
:
]]></source>
<p>また、webapps/fess/WEB-INF/classes/app.diconでデフォルトで有効になっているuseBigramをfalseに変更します。</p>
<source><![CDATA[
:
<component name="queryHelper" class="jp.sf.fess.helper.impl.QueryHelperImpl">
<property name="useBigram">true</property>
:
]]></source>
<p>設定後、Fessを再起動します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,86 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>LibreOfficeの利用</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="OpenOffice/LibreOfficeの利用">
<p>
標準のFess環境において、Apache POI を用いた MS Office 系ドキュメントのクロールが可能です。
オフィス系ドキュメントのクロールに関して、OpenOfficeやLibreOfficeを利用して、ドキュメントからより高精度なテキスト抽出も行うことができます。
</p>
</section>
<section name="設定方法">
<p>JodConverter を Fess サーバーにインストールします。http://jodconverter.googlecode.com/ から<a href="http://jodconverter.googlecode.com/files/jodconverter-core-3.0-beta-4-dist.zip">jodconverter-core-3.0-beta-4-dist.zip</a>をダウンロードします。展開して jar ファイルを Fess サーバーにコピーします。</p>
<source><![CDATA[
$ unzip jodconverter-core-3.0-beta-4-dist.zip
$ cp jodconverter-core-3.0-beta-4/lib/juh-3.2.1.jar \
jodconverter-core-3.0-beta-4/lib/jurt-3.2.1.jar \
jodconverter-core-3.0-beta-4/lib/ridl-3.2.1.jar \
jodconverter-core-3.0-beta-4/lib/unoil-3.2.1.jar \
jodconverter-core-3.0-beta-4/lib/jodconverter-core-3.0-beta-4.jar \
fess-server-9.1.0/webapps/fess/WEB-INF/cmd/lib/
$ cd fess-server-9.1.0/
]]></source>
<p>次にs2robot_extractor.diconを作成します。</p>
<source><![CDATA[
vi webapps/fess/WEB-INF/classes/s2robot_extractor.dicon
]]></source>
<p>s2robot_extractor.diconは以下のような内容でjodExtractorを有効にします。</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN"
"http://www.seasar.org/dtd/components24.dtd">
<components>
<component name="tikaExtractor" class="org.seasar.robot.extractor.impl.TikaExtractor"/>
<component name="msWordExtractor"
class="org.seasar.robot.extractor.impl.MsWordExtractor"/>
<component name="msExcelExtractor"
class="org.seasar.robot.extractor.impl.MsExcelExtractor"/>
<component name="msPowerPointExtractor"
class="org.seasar.robot.extractor.impl.MsPowerPointExtractor"/>
<component name="msPublisherExtractor"
class="org.seasar.robot.extractor.impl.MsPublisherExtractor"/>
<component name="msVisioExtractor"
class="org.seasar.robot.extractor.impl.MsVisioExtractor"/>
<component name="pdfExtractor" class="org.seasar.robot.extractor.impl.PdfExtractor"/>
<component name="textExtractor" class="org.seasar.robot.extractor.impl.TextExtractor"/>
<component name="htmlExtractor" class="org.seasar.robot.extractor.impl.HtmlExtractor"/>
<component name="xmlExtractor" class="org.seasar.robot.extractor.impl.XmlExtractor"/>
<component name="htmlXpathExtractor"
class="org.seasar.robot.extractor.impl.HtmlXpathExtractor">
<initMethod name="addFeature">
<arg>"http://xml.org/sax/features/namespaces"</arg>
<arg>"false"</arg>
</initMethod>
</component>
<component name="officeManagerConfiguration"
class="org.artofsolving.jodconverter.office.DefaultOfficeManagerConfiguration">
</component>
<component name="jodExtractor"
class="org.seasar.robot.extractor.impl.JodExtractor">
<property name="officeManager">
officeManagerConfiguration.setOfficeHome("/usr/lib/libreoffice")
.buildOfficeManager()
</property>
</component>
<component name="extractorFactory" class="org.seasar.robot.extractor.ExtractorFactory">
<initMethod name="addExtractor">
<arg>{
"application/msword",
"application/vnd.ms-excel",
"application/vnd.ms-powerpoint",
"application/vnd.openxmlformats-officedocument.wordprocessingml.document",
"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
"application/vnd.openxmlformats-officedocument.presentationml.presentation"
}</arg>
<arg>jodExtractor</arg>
</initMethod>
...
]]></source>
<p>設定後、通常通りにクロールしてインデックスを生成します。</p>
</section>
</body>
</document>

View file

@ -0,0 +1,55 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>Windowsサービスへの登録</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="Windowsサービスとしての登録">
<p>Windows 環境であれば Fess を Windows のサービスとして登録することができます。サービスの登録方法は Tomcat と同様です。</p>
<subsection name="事前準備">
<p>Windows のサービスとして登録する場合、クロールプロセスは Windows のシステムの環境変数を見にいくため、<b>Java の JAVA_HOME をシステムの環境変数に登録し</b>、同様に <b>%JAVA_HOME%\bin も Path に追加する</b>必要があります。</p>
</subsection>
<subsection name="設定">
<p>webapps\fess\WEB-INF\classes\fess.dicon を編集して、-server オプションを取り除きます。</p>
<source><![CDATA[
<component name="systemHelper" class="jp.sf.fess.helper.SystemHelper">
<!--
<property name="adminRole">"fess"</property>
<property name="authenticatedRoles">"role1"</property>
-->
<property name="crawlerJavaOptions">new String[] {
"-Djava.awt.headless=true", "-XX:+UseGCOverheadLimit",
"-XX:+UseConcMarkSweepGC", "-XX:+CMSIncrementalMode",
"-XX:+UseTLAB", "-Xmx512m", "-XX:MaxPermSize=128m"
}</property>
</component>
]]></source>
</subsection>
<subsection name="登録方法">
<p>まず、Fess のインストール後、コマンドプロンプトから service.bat を実行します (Vista などでは管理者として起動する必要があります)。Fess は C:\Java\fess-server-9.1.0 にインストールしたものとします。</p>
<source><![CDATA[
> cd C:\Java\fess-server-9.1.0\bin
> service.bat install fess
...
The service 'fess' has been installed.
]]></source>
</subsection>
<subsection name="設定の確認方法">
<p>以下のようにすることで Fess 用のプロパティを確認できます。以下を実行すると、Tomcat のプロパティ設定ウィンドウが表示されます。</p>
<source><![CDATA[
> tomcat7w.exe //ES//fess
]]></source>
</subsection>
<subsection name="サービスの設定">
<p>コントロールパネル - 管理ツール - サービスで管理ツールを表示して、通常の Windows のサービスと同様に自動起動などが設定できます。</p>
</subsection>
</section>
<section name="その他">
<subsection name="64bit環境での利用">
<p>Fess で配布しているものは 64bit Windows 用の Tomcat バイナリをベースにビルドされています。
32bit Windows で利用する場合は <a href="http://tomcat.apache.org/download-70.cgi">Tomcat</a> のサイトから 32bit Windows zip などを取得して、tomcat7.exe, tomcat7w.exe, tcnative-1.dll を差し替えてください。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>はじめに</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="対象読者">
<p>
このドキュメントは、Fessのインストール作業およびアンインストール作業を担当するユーザーを対象にしています。
</p>
</section>
<section name="お読みになる前に">
<p>
このドキュメントでは、Fessのインストール方法を示しています。コンピュータ操作の基礎的な知識が必要になります。
</p>
</section>
<section name="オンラインでのアクセス">
<p>
ダウンロード、専門的サービス、サポート、その他の開発者情報については、次にアクセスしてください。
</p>
<ul>
<li>プロジェクトサイト: <a href="http://fess.codelibs.org/">http://fess.codelibs.org/</a></li>
</ul>
</section>
<section name="技術的なサポートの連絡先">
<p>
本製品に関する技術的質問で、ドキュメント内に解決策が得られない場合は、次にアクセスしてください。
</p>
<ul>
<li>公開フォーラム: <a href="http://sourceforge.jp/forum/?group_id=18580">http://sourceforge.jp/forum/?group_id=18580</a></li>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
<subsection name="商用サポート">
<p>
本製品に関する技術的対応や保守などの商用サポートが必要な場合は、<a href="http://www.n2sm.net/">N2SM, Inc.</a>にご相談ください。
</p>
</subsection>
</section>
<section name="関連サードパーティー Web サイトの参照">
<p>
Fess プロジェクトでは、このドキュメントに記載されているサードパーティーの Web サイトの有効性については責任を持ちません。
Fess プロジェクトはそのようなサイトやリソースを通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどについて、保証、責任、義務を負いません。
Fess プロジェクトはそのようなサイトやリソースと通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどを、使用または信用したり、それに関連して発生または申し立てられた、一切の損傷や損害に対しては責任または義務を負いません。
</p>
</section>
<section name="コメントおよび提案の送付方法">
<p>
Fess プロジェクトは、このドキュメントの改善に努めており、読者からのコメントおよび提案などを歓迎しています。
</p>
<ul>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
</section>
</body>
</document>

View file

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>インストール</title>
<authors>
<person name="菅谷信介" email="shinsuke@yahoo.co.jp"/>
</authors>
</properties>
<body>
<section name="インストール要件">
<p>
Fess は以下の環境で利用することができます。
</p>
<ul>
<li>OS: Windows や Unix など Java が実行できる OS 環境</li>
<li>Java: Java 7 以上</li>
</ul>
<p>
Fess を利用したい環境に Java がインストールされていない場合は、http://java.sun.com/ より Java 7 以上の JDK を取得してインストールしてください。
</p>
</section>
<section name="ダウンロード">
<p>
<a href="http://sourceforge.jp/projects/fess/releases/">http://sourceforge.jp/projects/fess/releases/</a> から最新の Fess パッケージをダウンロードします。
</p>
</section>
<section name="インストール">
<p>
ダウンロードした fess-server-x.y.zip を展開します。Unix 環境にインストールした場合、bin 以下にあるスクリプトに実行権を付加します。
</p>
<source><![CDATA[
$ unzip fess-server-x.y.zip
$ cd fess-server-x.y
$ chmod +x bin/*.sh # (Unix環境のみ)
]]></source>
</section>
<section name="管理者パスワードの変更">
<p>
管理者アカウントはアプリケーションサーバーにより管理されています。標準の Fess サーバーは Tomcat を利用しているので、Tomcat のユーザー変更方法と同様になります。変更する場合は、conf/tomcat-user.xml の admin アカウントのパスワードを修正してください。
</p>
<source><![CDATA[
<user username="admin" password="admin" roles="fess"/>
]]></source>
<p>
tomcat-user.xml のファイルによる管理方法以外を利用する場合は、Tomcat のドキュメントや JAAS 認証の仕様を参照してください。
</p>
</section>
<section name="Solr サーバーのパスワード変更">
<p>
Fess サーバーには Solr が組み込まれていますが、アクセスするためにはパスワードが必要になります。実運用などにおいては、デフォルトのパスワードを変更してください。
</p>
<p>
パスワードの変更方法は、まず、conf/tomcat-user.xml の solradmin のパスワード属性を変更します。
</p>
<source><![CDATA[
<user username="solradmin" password="solradmin" roles="solr"/>
]]></source>
<p>
次に webapps/fess/WEB-INF/classes/solrlib.dicon、fess_suggest.dicon および solr/core1/conf/solrconfig.xml の3ファイルを変更します。以下のパスワードの箇所へ tomcat-user.xml で指定したものを記述します。
</p>
<p>
solrlib.dicon の対象箇所を以下のように修正します。
</p>
<source><![CDATA[
<component class="org.apache.commons.httpclient.UsernamePasswordCredentials">
<arg>"solradmin"</arg> <!-- ユーザー名 -->
<arg>"solradmin"</arg> <!-- パスワード -->
</component>
]]></source>
<p>
fess_suggest.dicon は以下の箇所です。
</p>
<source><![CDATA[
<component name="suggestCredentials" class="org.apache.http.auth.UsernamePasswordCredentials">
<arg>"solradmin"</arg> <!-- ユーザー名 -->
<arg>"solradmin"</arg> <!-- パスワード -->
</component>
]]></source>
<p>
solrconfig.xml は以下の箇所です。
</p>
<source><![CDATA[
<!-- SuggestTranslogUpdateHandler settings -->
<suggest>
<solrServer class="org.codelibs.solr.lib.server.SolrLibHttpSolrServer">
<arg>http://localhost:8080/solr/core1-suggest</arg>
<credentials>
<username>solradmin</username> <!-- ユーザー名 -->
<password>solradmin</password> <!-- パスワード -->
</credentials>
]]></source>
</section>
<section name="Tomcat コンソールのパスワード変更">
<p>
Fess サーバーから Tomcat に配置した Solr のコンテキストを管理することができますが、管理するためにはパスワードが必要になります。実運用などにおいては、デフォルトのパスワードを変更してください。
</p>
<p>
パスワードの変更方法は、conf/tomcat-user.xml の manager のパスワード属性を変更します。
</p>
<source><![CDATA[
<user username="manager" password="manager" roles="manager-script"/>
]]></source>
<p>
次に webapps/fess/WEB-INF/classes/app.dicon の以下のパスワードの箇所を tomcat-user.xml で指定したものを記述します。
</p>
<source><![CDATA[
<component class="jp.sf.fess.helper.impl.TomcatManagementHelperImpl$SolrInstance">
<property name="name">"solrServer1"</property>
<property name="managerUrl">"http://localhost:8080/manager/text/"</property>
<property name="contextPath">"/solr"</property>
<property name="username">"manager"</property>
<property name="password">"manager"</property> <!-- パスワード -->
</component>
]]></source>
</section>
<section name="暗号化キーの変更">
<p>
ログイン時の戻りパスの設定などで暗号化/復号化が利用されています。実運用などにおいてはデフォルトのパスワードを変更してください。
</p>
<p>
変更方法は、webapps/fess/WEB-INF/classes/app.dicon で key の値を変更します。16 文字の半角英数字を設定してください。
</p>
<source><![CDATA[
<!-- CHANGE THE FOLLOWING KEY -->
<property name="key">"1234567890123456"</property>
]]></source>
</section>
</body>
</document>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>起動および停止方法</title>
<authors>
<person name="菅谷信介" email="shinsuke@yahoo.co.jp"/>
</authors>
</properties>
<body>
<section name="起動方法">
<p>
startup スクリプトを実行して Fess を起動します。
</p>
<source><![CDATA[
$ ./bin/startup.sh # (Windowsの場合 startup.bat)
]]></source>
<p>
http://localhost:8080/fess/ にアクセスすることによって、起動を確認できます。
</p>
<p>
管理 UI は http://localhost:8080/fess/admin/ です。
デフォルトの管理者アカウントのユーザー名/パスワードは、admin/admin になります。
管理者アカウントはアプリケーションサーバーにより管理されています。
Fess の管理 UI では、アプリケーションサーバーで fess ロールで認証されたユーザーを管理者として利用します。
</p>
</section>
<section name="停止方法">
<p>
shutdown スクリプトを実行して Fess を停止します。
</p>
<source><![CDATA[
$ ./bin/shutdown.sh # (Windowsの場合 shutdown.bat)
]]></source>
<p>
クロールまたはインデックス作成中にシャットダウンした場合、完全に停止するまで時間がかかる場合があります。
</p>
</section>
</body>
</document>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>アンインストール</title>
<authors>
<person name="菅谷信介" email="shinsuke@yahoo.co.jp"/>
</authors>
</properties>
<body>
<section name="アンインストール">
<p>
Fess を停止後、インストールした fess-server-x.y ディレクトリを削除することでアンインストールすることができます。
</p>
<source><![CDATA[
$ rm -r fess-server-x.y
]]></source>
</section>
</body>
</document>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>はじめに</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="対象読者">
<p>
このドキュメントはFessを利用するユーザーを対象にしています。
</p>
</section>
<section name="お読みになる前に">
<p>
このドキュメントでは、Fessでの検索方法を示しています。コンピュータ操作の基礎的な知識が必要になります。
</p>
</section>
<section name="オンラインでのアクセス">
<p>
ダウンロード、専門的サービス、サポート、その他の開発者情報については、次にアクセスしてください。
</p>
<ul>
<li>プロジェクトサイト: <a href="http://fess.codelibs.org/">http://fess.codelibs.org/</a></li>
</ul>
</section>
<section name="技術的なサポートの連絡先">
<p>
本製品に関する技術的質問で、ドキュメント内に解決策が得られない場合は、次にアクセスしてください。
</p>
<ul>
<li>公開フォーラム: <a href="http://sourceforge.jp/forum/?group_id=18580">http://sourceforge.jp/forum/?group_id=18580</a></li>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
<subsection name="商用サポート">
<p>
本製品に関する技術的対応や保守などの商用サポートが必要な場合は、<a href="http://www.n2sm.net/">N2SM, Inc.</a>にご相談ください。
</p>
</subsection>
</section>
<section name="関連サードパーティー Web サイトの参照">
<p>
Fess プロジェクトでは、このドキュメントに記載されているサードパーティーの Web サイトの有効性については責任を持ちません。
Fess プロジェクトはそのようなサイトやリソースを通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどについて、保証、責任、義務を負いません。
Fess プロジェクトはそのようなサイトやリソースと通じて、利用可能なコンテンツ、広告、製品、サービス、その他のドキュメントなどを、使用または信用したり、それに関連して発生または申し立てられた、一切の損傷や損害に対しては責任または義務を負いません。
</p>
</section>
<section name="コメントおよび提案の送付方法">
<p>
Fess プロジェクトは、このドキュメントの改善に努めており、読者からのコメントおよび提案などを歓迎しています。
</p>
<ul>
<li>メーリングリスト: <a href="http://sourceforge.jp/mail/?group_id=18580">http://sourceforge.jp/mail/?group_id=18580</a></li>
</ul>
</section>
</body>
</document>

View file

@ -0,0 +1,184 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>JSONによる検索結果</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="JSON応答による検索">
<p>Fessの検索結果をJSONにより出力することができます。JSONにより出力するためには管理画面のクロール全般の設定でJSON応答を有効にしておく必要があります。</p>
<subsection name="リクエスト">
<p>JSONにより出力結果を得るためには <code>http://localhost:8080/fess/json?query=検索語</code> のようなリクエストを送ります。リクエストパラメータについては以下の通りです。</p>
<table columninfo="lp{10cm}">
<caption>リクエストパラメータ</caption>
<tbody>
<tr>
<th>query</th>
<td>検索語。URLエンコードして渡します。</td>
</tr>
<tr>
<th>start</th>
<td>開始する件数位置。0から始まります。</td>
</tr>
<tr>
<th>num</th>
<td>表示件数。デフォルトは20件です。100件まで表示できます。</td>
</tr>
<tr>
<th>fields.label</th>
<td>ラベル値。ラベルを指定する場合に利用します。</td>
</tr>
<tr>
<th>callback</th>
<td>JSONPを利用する場合のコールバック名。JSONPを利用しない場合は指定する必要はありません。</td>
</tr>
</tbody>
</table>
</subsection>
<subsection name="レスポンス">
<p>以下のようなレスポンスが返ります。</p>
<source><![CDATA[
{
"response": {
"version": 1,
"status": 0,
"query": "\u30C6\u30B9\u30C8",
"execTime": 0.59,
"pageSize": 20,
"pageNumber": 1,
"recordCount": 101,
"pageCount": 6,
"result": [
{
"site": "speedtest.goo.ne.jp\u002F",
"contentDescription": "goo \u306E\u63D0\u4F9B\u3059\u308B\u30B9\u30D4\u3C..",
"host": "speedtest.goo.ne.jp",
"lastModified": "1284739487873",
"cache": "\u9FA0-->\n<meta http-equiv=\u0022Content-Type\u0022 content=\..",
"score": "4.98744",
"digest": "goo \u306E\u63D0\u4F9B\u3059\u308B\u30B9\u30D4\u30FC\u30C9<em>..",
"tstamp": "1284739487887",
"url": "http:\u002F\u002Fspeedtest.goo.ne.jp\u002F",
"id": "http:\u002F\u002Fspeedtest.goo.ne.jp\u002F;type=au,docomo,pc,softbank",
"mimetype": "text\u002Fhtml",
"title": "\ngoo \u30B9\u30D4\u30FC\u30C9\u30C6\u30B9\u30C8\n",
"contentTitle": "\ngoo \u30B9\u30D4\u30FC\u30C9\u30C6\u30B9\u30C8\n",
"boost": "1.0",
"contentLength": "17810",
"urlLink": "http:\u002F\u002Fspeedtest.goo.ne.jp\u002F"
},
...
]
}
}
]]></source>
<p>各要素については以下の通りです。</p>
<table>
<caption>レスポンス情報</caption>
<tbody>
<tr>
<th>response</th>
<td>ルート要素。</td>
</tr>
<tr>
<th>version</th>
<td>フォーマットバージョン。</td>
</tr>
<tr>
<th>status</th>
<td>レスポンスのステータス。status値は、0:正常、1:検索エラー、2または3:リクエストパラメータエラー、9:サービス停止中、-1:API種別エラーです。</td>
</tr>
<tr>
<th>query</th>
<td>検索語。</td>
</tr>
<tr>
<th>execTime</th>
<td>応答時間。単位は秒。</td>
</tr>
<tr>
<th>pageSize</th>
<td>表示件数。</td>
</tr>
<tr>
<th>pageNumber</th>
<td>ページ番号。</td>
</tr>
<tr>
<th>recordCount</th>
<td>検索語に対してヒットした件数。</td>
</tr>
<tr>
<th>pageCount</th>
<td>検索語に対してヒットした件数のページ数。</td>
</tr>
<tr>
<th>result</th>
<td>検索結果の親要素。</td>
</tr>
<tr>
<th>site</th>
<td>サイト名。</td>
</tr>
<tr>
<th>contentDescription</th>
<td>コンテンツの説明。</td>
</tr>
<tr>
<th>host</th>
<td>ホスト名。</td>
</tr>
<tr>
<th>lastModified</th>
<td>最終更新日時。1970/01/01 00:00:00 から始まるミリ秒。</td>
</tr>
<tr>
<th>cache</th>
<td>コンテンツの内容。</td>
</tr>
<tr>
<th>score</th>
<td>ドキュメントのスコア値。</td>
</tr>
<tr>
<th>digest</th>
<td>ドキュメントのダイジェスト文字列。</td>
</tr>
<tr>
<th>tstamp</th>
<td>ドキュメントの生成日時。1970/01/01 00:00:00 から始まるミリ秒。</td>
</tr>
<tr>
<th>url</th>
<td>ドキュメントのURL。</td>
</tr>
<tr>
<th>id</th>
<td>ドキュメントのID。</td>
</tr>
<tr>
<th>mimetype</th>
<td>MIMEタイプ。</td>
</tr>
<tr>
<th>title</th>
<td>ドキュメントのタイトル。</td>
</tr>
<tr>
<th>contentTitle</th>
<td>表示用のドキュメントのタイトル。</td>
</tr>
<tr>
<th>contentLength</th>
<td>ドキュメントのサイズ。</td>
</tr>
<tr>
<th>urlLink</th>
<td>検索結果としてのURL。</td>
</tr>
</tbody>
</table>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>非表示検索条件</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="非表示検索条件">
<p>画面上には検索条件の文字列を表示せずに特定の検索条件を引き回したい場合にadditionalパラメータを利用することができます。additionalの値はページングで画面が更新されてもadditionalの値は保持されます。</p>
<subsection name="利用方法">
<p>検索が実行される際に (たとえば、検索フォームなど) hidden フォームで additional の値を付加して検索を実行すると、ページングで画面遷移しても、その条件を画面に表示することなく、条件を保持することができます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>AND 検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="AND 検索">
<p>複数の検索語がすべて含まれるドキュメントを検索したい場合には AND 検索を利用します。AND を省略してスペース区切りで検索語入力欄に複数単語を記述した場合も AND 検索になります。</p>
<subsection name="利用方法">
<p>AND 検索を利用する場合は検索語間に AND を記述します。AND は大文字で記述して、前後にスペースが必要になります。AND は省略することも可能です。</p>
<p>たとえば、「検索語1」と「検索語2」が含まれるドキュメントを検索したい場合は以下のように検索フォームに入力します。</p>
<source><![CDATA[
検索語1 AND 検索語2
]]></source>
<p>AND で複数語をつなぐことも可能です。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ブースト検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ブースト検索(重み付け検索)">
<p>検索語のうち、特定の検索語を優先したい場合にはブースト検索を利用します。ブースト検索を利用することで、検索語の重要度に応じた検索が可能になります。</p>
<subsection name="利用方法">
<p>ブースト検索を利用するためには、検索語の後に「^ブースト値」という形式でブースト値 (重み付け値) を指定します。</p>
<p>たとえば、「りんご みかん」を検索したい場合に「りんご」がより含まれるページを検索したい場合は以下のように検索フォームに入力します。</p>
<source><![CDATA[
りんご^100 みかん
]]></source>
<p>ブースト値は 1 以上の整数を指定します。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>検索フィールド指定による検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="フィールド指定検索">
<p>Fess でクロールした結果はタイトルや本文などの各フィールドごとに保存されています。それらのフィールドを指定して検索することができます。フィールドを指定して検索することで、ドキュメントの種類別やサイズ別など細かい検索条件の指定をすることができます。</p>
<subsection name="利用可能なフィールド">
<p>デフォルトでは以下のフィールドを指定して検索することができます。</p>
<table>
<caption>利用可能なフィールド一覧</caption>
<tbody>
<tr>
<th>フィールド名</th>
<th>説明</th>
</tr>
<tr>
<th>url</th>
<td>クロールした URL</td>
</tr>
<tr>
<th>host</th>
<td>クロールした URL に含まれていたホスト名</td>
</tr>
<tr>
<th>site</th>
<td>クロールした URL に含まれていたサイト名</td>
</tr>
<tr>
<th>title</th>
<td>タイトル</td>
</tr>
<tr>
<th>content</th>
<td>本文</td>
</tr>
<tr>
<th>contentLength</th>
<td>クロールしたコンテンツサイズ</td>
</tr>
<tr>
<th>lastModified</th>
<td>クロールしたコンテンツの最終更新日時</td>
</tr>
<tr>
<th>mimetype</th>
<td>コンテンツの MIME タイプ</td>
</tr>
</tbody>
</table>
<p>フィールド指定をしていない場合は、content を対象に検索します。フィールドはSolrのダイナミックフィールドを利用することで独自のフィールドも利用することができます。</p>
<p>HTMLファイルを検索対象としている場合、titleタグがtitleフィールド、bodyタグ以下の文字列がbodyフィールドに登録されています。</p>
</subsection>
<subsection name="利用方法">
<p>フィールド指定検索をする場合は、「フィールド名:検索語」のようにフィールド名と検索語をコロン(:)で区切って検索フォームに入力して検索します。</p>
<p>titleフィールドに対して、Fess を検索語として検索する場合は以下のように入力します。</p>
<source><![CDATA[
title:Fess
]]></source>
<p>上記の検索により、titleフィールドにFessが含まれるドキュメントが検索結果として表示されます。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>曖昧検索(ファジー検索)</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="あいまい検索(ファジー検索)">
<p>検索語に完全一致しない単語も検索する場合にはあいまい検索が利用可能です。Fess ではレーベンシュタイン距離に基づくあいまい検索 (ファジー検索) に対応しています。</p>
<subsection name="利用方法">
<p>曖昧検索を適用したい検索語の後に「~」を付加します。</p>
<p>たとえば、「Solr」という単語をあいまい検索したい場合、以下のように検索フォームに入力することで、「Solr」に近い語(「Solar」など) を含むドキュメントを検索できます。
</p>
<source><![CDATA[
Solr~
]]></source>
<p>また、「~」の後に 0 1 の数値を指定することで、1 に近い場合はより類似したものだけに絞り込めます。たとえば、「Solr~0.8」という形になります。数値を指定しないときのデフォルト値は 0.5 になります。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ジオサーチ</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ジオサーチ">
<p>インデックス生成時に各ドキュメントに対して緯度経度の位置情報を付加することで、検索時に位置情報を用いた検索が可能になります。</p>
<subsection name="利用方法">
<p>標準では以下のパラメータが利用可能です。</p>
<table columninfo="lp{10cm}">
<caption>リクエストパラメータ</caption>
<tbody>
<tr>
<th>geo.latitude</th>
<td>緯度の度分秒をDouble型で指定します。</td>
</tr>
<tr>
<th>geo.longitude</th>
<td>経度の度分秒をDouble型で指定します。</td>
</tr>
<tr>
<th>geo.distance</th>
<td>ドキュメントとの距離をキロメータ単位で指定します。Double型で指定します。</td>
</tr>
</tbody>
</table>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ラベルを用いた検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ラベル指定検索 (カテゴリ検索)">
<p>検索対象のドキュメントにカテゴリ分けするためのラベル情報を付加することで、検索時にラベルを指定した絞り込み検索が可能です。ラベル情報は管理画面で登録しておくことで、検索画面でラベルによる検索が可能になります。利用可能なラベル情報は検索時にプルダウンで複数選択することができます。ラベルを登録していない場合は、ラベルのプルダウンボックスは表示されません。</p>
<subsection name="利用方法">
<p>検索時にラベル情報を選択することができます。ラベル情報はオプションボタンを押下することで表示される検索オプションダイアログで選択することができます。</p>
<img src="/images/ja/9.1/user/search-label-1.png" alt="ラベル指定検索"/>
<p>ラベルを設定してインデックスを作成することで、ラベルが設定されたドキュメントごとに検索をすることができます。ラベルを指定しない検索は通常と同様の全件検索になります。ラベル情報を変更した場合は、インデックスの更新が必要になります。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>NOT 検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="NOT 検索">
<p>ある単語を含まないドキュメントを検索する場合に NOT 検索が利用できます。</p>
<subsection name="利用方法">
<p>NOT 検索は含まない単語の前に NOT を付けて検索します。NOT は半角大文字で前後にスペースが必要です。</p>
<p>たとえば、「検索語1」が含まれるが「検索語2」を含まないドキュメントを検索したい場合は以下のように入力して検索します。</p>
<source><![CDATA[
検索語1 NOT 検索語2
]]></source>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>拡張パラメータ検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="拡張パラメータ検索">
<p>他社製検索エンジンから移行しやすいように任意の検索条件を渡すことができます。渡した検索条件はQueryHelperImpl#buildOptionQueryで処理を実装してください。</p>
<subsection name="利用方法">
<p>標準では以下のパラメータが利用可能です。</p>
<table columninfo="lp{10cm}">
<caption>リクエストパラメータ</caption>
<tbody>
<tr>
<th>options.q</th>
<td>通常のqueryと同様です。複数のoptions.qを指定することができます。複数指定した場合はAND検索として扱われます。URLエンコードして渡します。</td>
</tr>
<tr>
<th>options.cq</th>
<td>完全一致の検索クエリーとして扱われます。たとえば、「Fess Project」を指定した場合は、「"Fess Project"」として検索します。URLエンコードして渡します。</td>
</tr>
<tr>
<th>options.oq</th>
<td>OR検索として扱われます。たとえば、「Fess Project」を指定した場合は、「Fess OR Project」として検索します。URLエンコードして渡します。</td>
</tr>
<tr>
<th>options.nq</th>
<td>ラベル値。ラベルを指定する場合に利用します。</td>
<td>NOT検索として扱われます。たとえば、「Fess」を指定した場合は、「NOT Fess」として検索します。URLエンコードして渡します。</td>
</tr>
</tbody>
</table>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>OR 検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="OR 検索">
<p>検索語のどれかが含まれるドキュメントを検索したい場合には OR 検索を利用します。検索語入力欄に複数単語を記述した場合、デフォルトでは AND 検索になります。</p>
<subsection name="利用方法">
<p>OR 検索を利用する場合は検索語間に OR を記述します。OR は大文字で記述して、前後にスペースが必要になります。</p>
<p>たとえば、「検索語1」と「検索語2」のどちらかが含まれるドキュメントを検索したい場合は以下のように検索フォームに入力します。</p>
<source><![CDATA[
検索語1 OR 検索語2
]]></source>
<p>OR で複数語をつなぐことも可能です。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>範囲指定検索</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="範囲指定検索">
<p>数値など範囲指定が可能でデータをフィールドに格納している場合、そのフィールドに対して範囲指定検索が可能です。</p>
<subsection name="利用方法">
<p>範囲指定検索をするためには、「フィールド名:[値 TO 値]」 を検索フォームに入力します。</p>
<p>たとえば、contentLength フィールドに対して、1kバイトから10kバイトにあるドキュメントを検索する場合は以下のように検索フォームに入力します。 </p>
<source><![CDATA[
contentLength:[1000 TO 10000]
]]></source>
<p>時間の範囲指定検索をするためには、「lastModified:[日時1 TO 日時2]」(日時1日時2) を検索フォームに入力します。</p>
<p>日時はISO 8601を基準にしています。</p>
<table>
<tr>
<td>年月日および時分秒および小数部分</td>
<td>現在日時を基準にする場合</td>
</tr>
<tr>
<td>YYYY-MM-DDThh:mm:ss.sZ2013-08-02T10:45:23.5Z)</td>
<td>NOW(現在の日時)、YEAR(今年)、MONTH(今月)、DAY(本日)</td>
</tr>
</table>
<p>NOWやDAYなどの現在日時を基準にした場合には+、-(加算、減産)や/(丸め)といった記号を付けることができます。</p>
<p>/は/の後ろの単位で丸める記号です。NOW-1DAY/DAYは本日何時に実行したとしても、本日00:00から-1日した前日の00:00を表します。</p>
<p>たとえば、lastModified フィールドに対して、2012年2月21日20時(現在日時とする)から30日前までに更新されたドキュメントを検索する場合は以下のように検索フォームに入力します。 </p>
<source><![CDATA[
lastModified:[NOW-30DAY TO NOW](=[2012-01-23T00:00:00Z+TO+2012-02-21T20:00:00Z(現在日時)])
]]></source>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>検索のソート</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ソート検索">
<p>検索日時などのフィールドを指定して検索結果をソートすることができます。</p>
<subsection name="ソート対象フィールド">
<p>デフォルトでは以下のフィールドを指定してソートすることができます。</p>
<table>
<caption>ソート対象フィールド一覧</caption>
<tbody>
<tr>
<th>フィールド名</th>
<th>説明</th>
</tr>
<tr>
<th>tstamp</th>
<td>クロールした日時</td>
</tr>
<tr>
<th>contentLength</th>
<td>クロールしたコンテンツサイズ</td>
</tr>
<tr>
<th>lastModified</th>
<td>クロールしたコンテンツの最終更新日時</td>
</tr>
</tbody>
</table>
<p>カスタマイズすることで独自のフィールドをソート対象として追加することもできます。</p>
</subsection>
<subsection name="利用方法">
<p>検索時にソート条件を選択することができます。ソート条件はオプションボタンを押下することで表示される検索オプションダイアログで選択することができます。</p>
<img src="/images/ja/9.1/user/search-sort-1.png" alt="ソート条件"/>
<p>また、検索フィールドでソートをする場合は、「sort:フィールド名」のようにsortとフィールド名をコロン(:)で区切って検索フォームに入力して検索します。</p>
<p>以下は Fess を検索語として、コンテンツサイズを昇順にソートします。</p>
<source><![CDATA[
Fess sort:contentLength
]]></source>
<p>降順にソートする場合は以下のようにします。</p>
<source><![CDATA[
Fess sort:contentLength.desc
]]></source>
<p>複数のフィールドでソートする場合は以下のように , 区切りで指定します。</p>
<source><![CDATA[
Fess sort:contentLength.desc,lastModified
]]></source>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>ワイルドカード</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="ワイルドカード">
<p>検索語内で 1 文字または複数文字のワイルドカードを利用することができます。? は 1 文字のワイルドカードとして指定でき、* は複数文字のワイルドカードとして指定することができます。ワイルドカードは先頭文字では利用できません。また、ワイルドカードを利用できる対象は単語になります。文に対するワイルドカード検索はできません。</p>
<subsection name="利用方法">
<p>1 文字のワイルドカードを利用する場合は以下のように ? を利用します。</p>
<source><![CDATA[
te?t
]]></source>
<p>上記の場合は、textやtestなど、1 文字のワイルドカードとして扱われます。</p>
<p>複数文字のワイルドカードを利用する場合は以下のように * を利用します。</p>
<source><![CDATA[
test*
]]></source>
<p>上記の場合は、test、testsやtesterなど、複数文字のワイルドカードとして扱われます。また、</p>
<source><![CDATA[
te*t
]]></source>
<p>のように検索語内に利用することもできます。</p>
</subsection>
<subsection name="利用条件">
<p>ワイルドカードはインデックスに登録された文字列を対象に利用されます。そのため、bi-gram などでインデックスを作成した場合は、日本語は意味のない固定文字列長で扱われるため、日本語でのワイルドカードは期待する動作になりません。日本語でワイルドカードを利用する場合は形態素解析を利用しているフィールドで利用してください。</p>
</subsection>
</section>
</body>
</document>

View file

@ -0,0 +1,212 @@
<?xml version="1.0" encoding="UTF-8"?>
<document>
<properties>
<title>XMLによる検索結果</title>
<author>菅谷 信介</author>
</properties>
<body>
<section name="XML応答による検索">
<p>Fessの検索結果をXMLにより出力することができます。XMLで出力するためには管理画面のクロール全般の設定でXML応答を有効にしておく必要があります。</p>
<subsection name="リクエスト">
<p>XMLにより出力結果を得るためには <code>http://localhost:8080/fess/xml?query=検索語</code> のようなリクエストを送ります。リクエストパラメータについては以下の通りです。</p>
<table>
<caption>リクエストパラメータ</caption>
<tbody>
<tr>
<th>query</th>
<td>検索語。URLエンコードして渡します。</td>
</tr>
<tr>
<th>start</th>
<td>開始する件数位置。0から始まります。</td>
</tr>
<tr>
<th>num</th>
<td>表示件数。デフォルトは20件です。100件まで表示できます。</td>
</tr>
<tr>
<th>fields.label</th>
<td>ラベル値。ラベルを指定する場合に利用します。</td>
</tr>
</tbody>
</table>
</subsection>
<subsection name="レスポンス">
<p>以下のようなレスポンスが返ります。</p>
<source><![CDATA[
<?xml version="1.0" encoding="UTF-8"?>
<response>
<version>1</version>
<status>0</status>
<query>テスト</query>
<exec-time>0.64</exec-time>
<page-size>20</page-size>
<page-number>1</page-number>
<record-count>101</record-count>
<page-count>6</page-count>
<result>
<doc>
<site>speedtest.goo.ne.jp/</site>
<content-description>goo の提供するスピード&lt;em&gt;テスト&lt;/em&gt;
ページです</content-description>
<host>speedtest.goo.ne.jp</host>
<last-modified>1284739487873</last-modified>
<cache>--&gt;
&lt;meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"&gt;
&lt;title&gt;
goo スピード&lt;em&gt;テスト&lt;/em&gt;
&lt;/title&gt;
&lt;meta..."&gt;
&lt;meta name="description" content="goo の提供するスピード&lt;em&gt;テスト
&lt;/em&gt;ページです"&gt;
&lt;meta name="keywords" content="ADSL,ブロードバンド,フレ...ッツ,BB,無線LAN,
CATV,ISDN,スピード&lt;em&gt;
テスト&lt;/em&gt;"&gt;
&lt;meta name="Copyright" content="Copyright &amp;copy; ...://speedtest.goo.ne.jp/"
&gt;&lt;img src="/img/h1/h1_76.gif" width="129" height="22" border="0"
alt="スピード&lt;em&gt;テスト
&lt;/em&gt;"&gt;&lt;img src..." color="#ffffff"&gt;goo スピード&lt;em&gt;テスト
&lt;/em&gt;&lt;/font
&gt;&lt;/a&gt;&lt;/b&gt;&lt;/td&gt;
&lt;!--/NAME SERVICE--&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td</cache>
<score>4.98744</score>
<digest>goo の提供するスピード&lt;em&gt;テスト&lt;/em&gt;ページです</digest>
<tstamp>1284739487887</tstamp>
<url>http://speedtest.goo.ne.jp/</url>
<id>http://speedtest.goo.ne.jp/;type=au,docomo,pc,softbank</id>
<mimetype>text/html</mimetype>
<title>
goo スピードテスト
</title>
<content-title>
goo スピードテスト
</content-title>
<boost>1.0</boost>
<content-length>17810</content-length>
<url-link>http://speedtest.goo.ne.jp/</url-link>
</doc>
...
</result>
</response>
]]></source>
<p>各要素については以下の通りです。</p>
<table>
<caption>レスポンス情報</caption>
<tbody>
<tr>
<th>response</th>
<td>ルート要素。</td>
</tr>
<tr>
<th>version</th>
<td>フォーマットバージョン。</td>
</tr>
<tr>
<th>status</th>
<td>レスポンスのステータス。status値は、0:正常、1:検索エラー、2または3:リクエストパラメータエラー、9:サービス停止中、-1:API種別エラーです。</td>
</tr>
<tr>
<th>query</th>
<td>検索語。</td>
</tr>
<tr>
<th>exec-time</th>
<td>応答時間。単位は秒。</td>
</tr>
<tr>
<th>page-size</th>
<td>表示件数。</td>
</tr>
<tr>
<th>page-number</th>
<td>ページ番号。</td>
</tr>
<tr>
<th>record-count</th>
<td>検索語に対してヒットした件数。</td>
</tr>
<tr>
<th>page-count</th>
<td>検索語に対してヒットした件数のページ数。</td>
</tr>
<tr>
<th>result</th>
<td>検索結果の親要素。</td>
</tr>
<tr>
<th>doc</th>
<td>検索結果の要素。</td>
</tr>
<tr>
<th>site</th>
<td>サイト名。</td>
</tr>
<tr>
<th>content-description</th>
<td>コンテンツの説明。</td>
</tr>
<tr>
<th>host</th>
<td>ホスト名。</td>
</tr>
<tr>
<th>last-modified</th>
<td>最終更新日時。1970/01/01 00:00:00 から始まるミリ秒。</td>
</tr>
<tr>
<th>cache</th>
<td>コンテンツの内容。</td>
</tr>
<tr>
<th>score</th>
<td>ドキュメントのスコア値。</td>
</tr>
<tr>
<th>digest</th>
<td>ドキュメントのダイジェスト文字列。</td>
</tr>
<tr>
<th>tstamp</th>
<td>ドキュメントの生成日時。1970/01/01 00:00:00 から始まるミリ秒。</td>
</tr>
<tr>
<th>url</th>
<td>ドキュメントのURL。</td>
</tr>
<tr>
<th>id</th>
<td>ドキュメントのID。</td>
</tr>
<tr>
<th>mimetype</th>
<td>MIMEタイプ。</td>
</tr>
<tr>
<th>title</th>
<td>ドキュメントのタイトル。</td>
</tr>
<tr>
<th>content-title</th>
<td>表示用のドキュメントのタイトル。</td>
</tr>
<tr>
<th>content-length</th>
<td>ドキュメントのサイズ。</td>
</tr>
<tr>
<th>url-link</th>
<td>検索結果としてのURL。</td>
</tr>
</tbody>
</table>
</subsection>
</section>
</body>
</document>

Binary file not shown.

After

Width:  |  Height:  |  Size: 9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 82 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Some files were not shown because too many files have changed in this diff Show more