/[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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 dpavlin 2 <?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 dpavlin 10 <div class="note">Last Update: Mon, 01 Aug 2005 00:50:38 +0900</div>
28 dpavlin 2 <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 dpavlin 10 /usr/local/bin/estwolefind
143 dpavlin 2 /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