/[hyperestraier]/upstream/0.5.3/doc/intro-ja.html
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /upstream/0.5.3/doc/intro-ja.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 10 - (show annotations)
Wed Aug 3 15:25:48 2005 UTC (18 years, 8 months ago) by dpavlin
File MIME type: text/html
File size: 20242 byte(s)
import of upstream 0.5.3

1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
6
7 <head>
8 <meta http-equiv="Content-Language" content="ja" />
9 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
10 <meta http-equiv="Content-Style-Type" content="text/css" />
11 <meta name="author" content="Mikio Hirabayashi" />
12 <meta name="keywords" content="Hyper Estraier, Estraier, full-text search, API" />
13 <meta name="description" content="Introduction of Hyper Estraier" />
14 <link rel="contents" href="./" />
15 <link rel="alternate" href="intro-en.html" hreflang="en" title="the English version" />
16 <link rel="stylesheet" href="common.css" />
17 <link rel="icon" href="icon16.png" />
18 <link rev="made" href="mailto:mikio@users.sourceforge.net" />
19 <title>Introduction of Hyper Estraier Version 1 (Japanese)</title>
20 </head>
21
22 <body>
23
24 <h1>イントロダクション</h1>
25
26 <div class="note">Copyright (C) 2004-2005 Mikio Hirabayashi</div>
27 <div class="note">Last Update: Mon, 01 Aug 2005 00:50:38 +0900</div>
28 <div class="navi">[<a href="intro-en.html" hreflang="en">English</a>] [<a href="index.ja.html">HOME</a>]</div>
29
30 <hr />
31
32 <h2 id="tableofcontents">目次</h2>
33
34 <ol>
35 <li><a href="#introduction">はじめに</a></li>
36 <li><a href="#installation">インストール</a></li>
37 <li><a href="#deployment">検索機能の配備</a></li>
38 <li><a href="#complement">補足</a></li>
39 </ol>
40
41 <hr />
42
43 <h2 id="introduction">はじめに</h2>
44
45 <p>Hyper Estraierは全文検索システムです。たくさんの文書の中から、特定の語句を含むものを探して、該当するものの一覧を表示することができます。Webサイトを運営している方なら、自分のサイト専用の検索エンジンとして利用することができます。メールボックスやファイルサーバを対象とした検索ツールとして利用することもできます。</p>
46
47 <p>Hyper Estraierには、次のような特徴があります。</p>
48
49 <ul>
50 <li>インデックスを使った高速な検索ができます。</li>
51 <li>大量の文書のインデックスを短時間で作成できます。</li>
52 <li>N-gram方式による漏れのない検索ができます。</li>
53 <li>フレーズ検索や属性検索や類似検索をサポートします。</li>
54 <li>世界各国の言語が扱えます。</li>
55 <li>対象文書の所在や形式に依存しません。</li>
56 <li>ライブラリとして各種製品に組み込めます。</li>
57 <li>P2P連携機能をサポートします。</li>
58 </ul>
59
60 <p>まずは、<a href="http://rbbs.sourceforge.jp/cgi-bin/estdemo-ja/estseek.cgi">Hyper Estraierのデモサイト</a>を試してみてください。Hyper Estraierがどんなものかお分かりいただけるかと思います。</p>
61
62 <p>Hyper Estraierは二つの側面を持ちます。一つ目は、全文検索システムを構築するためのライブラリであることです。つまり、プログラマが利用するAPI(Application Programming Interface)を備えています。Hyper EstraierのAPIを利用することにより、全文検索の高度な機能を自分のプログラムに簡単に組み込むことができます。</p>
63
64 <p>二つ目は、上述のAPIを使ったアプリケーションであることです。検索用のインデックスを管理するコマンドと、Webインターフェイスで検索を行うためのCGIスクリプトが提供されます。それらを使うことにより、典型的な検索システムならプログラミングをしないで構築することができます。</p>
65
66 <p>この文書では、Webサイトの検索機能を題材に、上述のコマンドとCGIスクリプトを使って検索システムを構築する方法をご説明します。まずは付属のコマンドとやCGIスクリプトを利用方法を習得していただき、それでは実現できない機能が必要ならばAPIを使ったアプリケーションで補うようにするとよいでしょう。Hyper Estraierは豊富な機能を備えていますが、その全ての使い方を覚える必要はありません。Webサイトの検索システムを構築するなら、この文書だけ読めば充分です。</p>
67
68 <p><em>Hyper Estraierの現状の開発ステータスはベータです。APIやコマンドの仕様は変更される可能性がありますので、その点を踏まえた上でご利用ください。</em></p>
69
70 <hr />
71
72 <h2 id="installation">インストール</h2>
73
74 <p>Hyper Estraierのソースパッケージからのインストール方法を説明します。バイナリパッケージのインストール方法についてはそれぞれのパッケージの説明書をご覧ください。</p>
75
76 <h3>前提</h3>
77
78 <p>Hyper Estraierの現在バージョンは、UNIX系およびWindows NT系のOSで利用することができます。少なくとも、以下の環境では動作するはずです。</p>
79
80 <ul>
81 <li>Linux 2.2以降 (IA32/IA64/AMD64/SPARC/Alpha)</li>
82 <li>FreeBSD 4.9以降 (IA32/Alpha)</li>
83 <li>Solaris 8以降 (IA32/SPARC)</li>
84 <li>Mac OS X 10.2以降 (PowerPC)</li>
85 <li>HP-UX 11.11以降 (IA64/PA-RISC)</li>
86 <li>Windows 2000以降 (IA32)</li>
87 </ul>
88
89 <p>ソースパッケージを用いてHyper Estraierをインストールするには、gccのバージョン2.95以降とmakeが必要です。それらはLinuxやFreeBSDには標準的にインストールされています。</p>
90
91 <p>Hyper Estraierは、以下のライブラリを利用しています。予めそれらをインストールしておいてください。</p>
92
93 <ul>
94 <li><a href="http://www.gnu.org/software/libiconv/">libiconv</a> : 文字コード変換。バージョン1.9以降。</li>
95 <li><a href="http://www.gzip.org/zlib/">zlib</a> : 可逆データ圧縮。バージョン1.2.1以降。</li>
96 <li><a href="http://qdbm.sourceforge.net">QDBM</a> : 組み込み用データベース。バージョン1.8.27以降。</li>
97 </ul>
98
99 <p>なお、QDBMをインストールする際には、zlibを有効化(./configure --enable-zlib)しておくことをお薦めします。その方がHyper Estraierの作るインデックスが小さくなります。QDBMの1.8.29以前のバージョンはサポートされませんので注意してください。</p>
100
101 <h3>ビルドとインストール</h3>
102
103 <p>Hyper Estraierの配布用アーカイブファイルを展開したら、生成されたディレクトリに入ってインストール作業を行います。</p>
104
105 <p>configureスクリプトを実行して、ビルド環境を設定します。</p>
106
107 <pre>./configure
108 </pre>
109
110 <p>プログラムをビルドします。</p>
111
112 <pre>make
113 </pre>
114
115 <p>プログラムの自己診断テストを行います。</p>
116
117 <pre>make check
118 </pre>
119
120 <p>プログラムをインストールします。作業は `root' ユーザで行います。</p>
121
122 <pre>make install
123 </pre>
124
125 <h3>結果</h3>
126
127 <p>一連の作業が終ると、以下のファイルがインストールされます。</p>
128
129 <pre>/usr/local/include/estraier.h
130 /usr/local/include/estmtdb.h
131 /usr/local/lib/libestraier.a
132 /usr/local/lib/libestraier.so.2.0.0
133 /usr/local/lib/libestraier.so.2
134 /usr/local/lib/libestraier.so
135 /usr/local/lib/pkgconfig/hyperestraier.pc
136 /usr/local/bin/estcmd
137 /usr/local/bin/estmttest
138 /usr/local/bin/estmaster
139 /usr/local/bin/estcall
140 /usr/local/bin/estload
141 /usr/local/bin/estconfig
142 /usr/local/bin/estwolefind
143 /usr/local/libexec/estseek.cgi
144 /usr/local/share/hyperestraier/estseek.conf
145 /usr/local/share/hyperestraier/estseek.tmpl
146 /usr/local/share/hyperestraier/estseek.top
147 /usr/local/share/hyperestraier/estresult.dtd
148 /usr/local/share/hyperestraier/estraier.idl
149 /usr/local/share/hyperestraier/locale/...
150 /usr/local/share/hyperestraier/filter/...
151 /usr/local/share/hyperestraier/increm/...
152 /usr/local/share/hyperestraier/doc/...
153 </pre>
154
155 <h3>Mac OS XとHP-UXとWindows</h3>
156
157 <p>Mac OS Xの場合、「make」の代わりに「make mac」、「make check」の代わりに「make check-mac」、「make install」の代わりに「make install-mac」を実行してください。なお、Mac OS Xでは共有ライブラリの命名規則が異なります。「libestraier.1.0.0.dylib」「libestraier.1.dylib」「libestraier.dylib」になります。</p>
158
159 <p>HP-UXの場合、「make」の代わりに「make hpux」、「make check」の代わりに「make check-hpux」、「make install」の代わりに「make install-hpux」を実行してください。なお、HP-UXでは共有ライブラリの命名規則が異なります。「libestraier.sl」になります。</p>
160
161 <p>Windows上でビルドを行う場合には、CygwinおよびMinGWの開発環境が必要です。また、zlibとlibiconvとQDBMのMinGW版がそれぞれインストールされている必要があります。その上で、「make win」を実行してください。Windows用のインストールコマンドは用意されていません。Windows版のアプリケーションを動作させるには、「estraier.dll」だけでなく、「mgwz.dll」「libiconv-2.dll」「qdbm.dll」「pthreadGC2.dll」も必要です。なお、Windows版のバイナリパッケージには必要なライブラリが全て納められていますので、そちらを使うことをお薦めします。</p>
162
163 <hr />
164
165 <h2 id="deployment">検索機能の配備</h2>
166
167 <p>Webサイトの検索機能を例にとって、検索機能を動作させるための手順を説明します。意外に簡単にできますので、ぜひ実際に設置してみてください。</p>
168
169 <h3>インデックス管理用のコマンド</h3>
170
171 <p>Hyper Estraierでは、高速な検索を可能にするために、転置インデックスと呼ばれるデータベースを利用します。つまり、検索を行う前に、検索対象の文書を登録した転置インデックスを構築しておく必要があります。以後は転置インデックスのことを単にインデックスと言います。</p>
172
173 <p>インデックスを管理するために、estcmdというコマンドが提供されます。estcmdはローカルホストのファイルシステム上にある個々のファイルを文書として扱います。インデックスに文書を登録したり、インデックス内の文書情報を削除することができます。また、特定のディレクトリの以下の文書を一括して登録することもできます。対応している文書の形式は、プレーンテキストと、HTMLと電子メール(MIME)です。</p>
174
175 <p>その他の形式の文書を扱ったり、リモートホストにあるファイルを扱ったりすることもできるのですが、その方法については後々説明します。</p>
176
177 <h3>インデックスの作成</h3>
178
179 <p>あなたがWebサイトを運営していて、そのコンテンツが「/home/www/public_html」以下に置いてあるとしましょう。その下にある全てのHTMLファイルを登録したインデックスを「/home/www/casket」として作成することにします。それには、以下のコマンドを実行します。</p>
180
181 <pre>cd /home/www
182 estcmd gather -il ja -sd casket /home/www/public_html
183 </pre>
184
185 <p>「/home/www/public_html」以下の文書を収集して、casketという名前のインデックスを作るという意味です。「-il ja」オプションは、文字コードの判定時に日本語を優先するという意味です。「-sd」オプションは、ファイルの作成日時と更新日時をインデックスに記録するという意味です。実行すると、進捗状態のログメッセージが出てから、casketというディレクトリが作成されます。このディレクトリがインデックスです。インデックスの作成に必要な手順はこれだけです。</p>
186
187 <h3>検索用CGIスクリプト</h3>
188
189 <p>検索はWebインターフェイスで行います。Webブラウザで検索用ページにアクセスすることで、検索を行います。estseek.cgiはそのためのCGIスクリプトです。CGIスクリプトを動作させるためのWebサーバの設定については、各サーバのマニュアルをご覧ください。</p>
190
191 <h3>検索用ページの設置</h3>
192
193 <p>CGIスクリプトの設置場所のURLが「http://www.estraier.ad.jp/cgi-bin/」で、そのローカルのパスが「/home/www/cgi-bin」だとしましょう。その場合、以下のコマンドを実行します。</p>
194
195 <pre>cd /home/www/cgi-bin/
196 cp /usr/local/libexec/estseek.cgi .
197 cp /usr/local/share/hyperestraier/estseek.* .
198 </pre>
199
200 <p>「/usr/local/libexec/estseek.cgi」と、「/usr/local/share/hyperestraier/」にあるestseek.confとestseek.tmplとestseek.topを、「/home/www/cgi-bin/」にコピーするという意味です。estseek.cgiはCGIスクリプトです。estseek.confは設定ファイルです。estseek.tmplは検索ページのテンプレートファイルです。estseek.topは検索ページの初期画面のメッセージを記述したファイルです。なお、それらを日本語化したものが「/usr/local/share/hyperestraier/locale/ja/」の下にありますので、そちらを利用してもよいでしょう。</p>
201
202 <p>適当なテキストエディタで、設置されたestseek.confを開いて編集します。多くの項目はそのままでよいのですが、indexnameとlprefixとgprefixは変更する必要があります。以下のように書きます。</p>
203
204 <pre>indexname: /home/www/casket
205 ...
206 lprefix: file:///home/www/public_html/
207 gprefix: http://www.estraier.ad.jp/
208 ...
209 </pre>
210
211 <p>indexnameはインデックスのパスを指定します。lprefixは対象文書のローカルのパスの接頭辞を指定します。gprefixは対象文書のURLの接頭辞を指定します。</p>
212
213 <h3>使ってみよう</h3>
214
215 <p>これで準備はOKです。Webブラウザで、「http://www.estraier.ad.jp/cgi-bin/estseek.cgi」にアクセスしてみてください。詳しい使い方はそのページに書いてあります。</p>
216
217 <h3>インデックスの更新</h3>
218
219 <p>サイト内の文書が更新されたり、新しい文書が追加されたりした場合、適当な頻度でインデックスも更新するとよいでしょう。古いインデックスを削除して新しく作りなおしてもよいのですが、Hyper Estraierではインデックスの差分登録をすることもできます。</p>
220
221 <p>インデックスを作る際に「-sd」オプションをつけてファイルの更新時刻を記録していたのは、差分登録のためです。更新時刻を記録したインデックスに対しては、「-cl」と「-sd」と「-cm」オプションをつけて更新を行うことで、差分登録を行うことができます。</p>
222
223 <pre>cd /home/www
224 estcmd gather -cl -il ja -sd -cm casket /home/www/public_html
225 </pre>
226
227 <p>「-cm」オプションをつけると、まだインデックス内に存在しないか、前に登録した時より更新時刻が新しい文書のみを登録します。なお、既存の文書とURLが同じ文書を登録すると上書きされますので、古い文書は検索にヒットしなくなります。「-cl」オプションをつけると、上書きされた文書が含んでいた語句のインデックスを再構築します。次に更新をする時のために「-sd」オプションもつけて更新日時を記録しています。</p>
228
229 <h3>削除文書の反映</h3>
230
231 <p>サイト内の文書が削除された場合も、それをインデックスに反映して検索にヒットしないようにします。以下のコマンドを実行します。</p>
232
233 <pre>cd /home/www
234 estcmd purge -cl casket
235 </pre>
236
237 <p>インデックス内の文書情報をスキャンして、元の場所にファイルがないものを削除します。「-cl」オプションは、削除された文書が含んでいた語句のインデックスを再構築することを指示します。</p>
238
239 <h3>インデックスの最適化</h3>
240
241 <p>文書の登録や削除を繰り返すと、少しずつインデックスのサイズが肥大化してきます。データベースを最適化するとそれを解消してサイズを縮小することができます。</p>
242
243 <pre>cd /home/www
244 estcmd optimize casket
245 </pre>
246
247 <p>なお、gatherやpurgeを実行する際に「-cl」をつけなかった場合、上書きまたは削除された文書の情報は、削除マークが付けられるだけでインデックス内に残っています。最適化はインデックスを再構築して削除文書の領域を完全に消去する効果もあります。</p>
248
249 <h3>更新作業の自動化</h3>
250
251 <p>コマンドを定期的に実行するcronなどの機能を使ってインデックスの更新作業を自動化すると楽です。その際には、以下のようなスクリプトを書いておくとよいでしょう。</p>
252
253 <pre>/usr/local/bin/estcmd gather -cl -il ja -sd -cm /home/www/casket
254 /usr/local/bin/estcmd purge -cl /home/www/casket
255 </pre>
256
257 <p>ただし、purgeは毎回の更新で必要なわけではありません。それらは比較的重い処理なので、たまにやるだけで充分です。個人のWebサイトの検索システムであれば、gatherは毎日、purgeは毎週といった頻度にしてもよいでしょう。また、月に一度くらいでoptimizeを行ってもいいでしょう。</p>
258
259 <h3>詳しい使い方</h3>
260
261 <p>コマンドやCGIスクリプトの詳しい使い方に関しては<a href="uguide-ja.html">ユーザガイド</a>をご覧ください。APIの詳しい使い方に関しては<a href="pguide-ja.html">プログラミングガイド</a>をご覧ください。P2P機構の詳しい使い方に関しては<a href="nguide-ja.html">P2Pガイド</a>をご覧ください。</p>
262
263 <hr />
264
265 <h2 id="complement">補足</h2>
266
267 <p>作者の連絡先などの補足事項を紹介します。</p>
268
269 <h3>連絡先</h3>
270
271 <p>Hyper Estraierは平林幹雄が作成しました。作者と連絡をとるには、`mikio@users.sourceforge.net' 宛に電子メールを送ってください。ただし、質問やバグレポートなど、他のユーザと共有できる話題はメーリングリストに送ってください。メーリングリスト(日本語)の参加方法については、`<a href="http://lists.sourceforge.net/lists/listinfo/hyperestraier-users-ja">http://lists.sourceforge.net/lists/listinfo/hyperestraier-users-ja</a>' を参照してください。</p>
272
273 <h3>ライセンス</h3>
274
275 <p>Hyper Estraierはフリーソフトウェアです。あなたは、Free Software Foundationが公表したGNU Lesser General Public Licenseのバージョン2.1あるいはそれ以降の各バージョンの中からいずれかを選択し、そのバージョンが定める条項に従ってHyper Estraierを再頒布または変更することができます。</p>
276
277 <p>Hyper Estraierは有用であると思われますが、頒布にあたっては、市場性及び特定目的適合性についての暗黙の保証を含めて、いかなる保証も行ないません。詳細についてはGNU Lesser General Public Licenseを読んでください。</p>
278
279 <p>あなたは、Hyper Estraierと一緒にGNU Lesser General Public Licenseの写しを受け取っているはずです(`COPYING' ファイルを参照してください)。そうでない場合は、Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA へ連絡してください。</p>
280
281 <h3>謝辞</h3>
282
283 <p>Hyper Estraierは情報処理推進機構(IPA)による2004年度第2回未踏ソフトウェア創造事業の支援を受けて開発されました。同機構および関係各位に感謝いたします。また、有用な助言をくれた皆様、そして、Hyper Estraierのユーザの皆様にお礼を申し上げます。</p>
284
285 <hr />
286
287 </body>
288
289 </html>
290
291 <!-- END OF FILE -->

  ViewVC Help
Powered by ViewVC 1.1.26