[ZF-10089] Zend_Log
[zend.git] / documentation / manual / ja / module_specs / Zend_Search_Lucene-Overview.xml
blobb8d46cba7a8fc7ff9fb8332ca005950d494cf636
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20872 -->
4 <sect1 id="zend.search.lucene.overview">
5     <title>概要</title>
7     <sect2 id="zend.search.lucene.introduction">
8         <title>導入</title>
9         <para><classname>Zend_Search_Lucene</classname> は、完全に PHP 5
10             で書かれている汎用的なテキスト検索エンジンです。
11             インデックスをファイルシステム上に保存するためデータベースサーバを必要とせず、
12             たいていの PHP ウェブサイト上で動作させることができます。
13             <classname>Zend_Search_Lucene</classname> は、以下の機能をサポートしています。
14             <itemizedlist>
15                 <listitem>
16                     <para>重要度による検索 - 最もマッチした結果が最初に返されます</para>
17                 </listitem>
18                 <listitem>
19                     <para>
20                        さまざまな強力な検索方式: フレーズ検索、boolean 検索、ワイルドカード検索、
21                        あいまい検索、範囲指定検索などなど
22                     </para>
23                 </listitem>
24                 <listitem>
25                     <para>指定したフィールド (例: タイトル、作者、内容) による検索</para>
26                 </listitem>
27             </itemizedlist>
29             <classname>Zend_Search_Lucene</classname> は Apache Lucene プロジェクトから派生したものです。
30             現在 (Zend Framework 1.6 以降) サポートしている Lucene インデックスフォーマットバージョンは
31             1.4 - 2.3 です。
32             Lucene についての詳細は
33             <ulink url="http://lucene.apache.org/java/docs/"/>
34             を参照ください。
35         </para>
36         <note>
37             <title/>
38             <para>
39                 以前の <classname>Zend_Search_Lucene</classname> の実装は Lucene 1.4 (1.9) - 2.1 インデックスフォーマットに対応しています。
40             </para>
41             <para>
42                 Zend Framework 1.5 以降、2.1 より前のインデックスフォーマットで作成されたインデックスは
43                 <classname>Zend_Search_Lucene</classname> をアップグレードすると
44                 自動的に Lucene 2.1 フォーマットにアップグレードされるようになっています。
45                 いったんアップグレードされたインデックスは、
46                 Zend Framework 1.0.x に含まれる Zend_Search_Lucene の実装で読み込むことができません。
47             </para>
48         </note>
49     </sect2>
51     <sect2 id="zend.search.lucene.index-creation.documents-and-fields">
52         <title>Document および Field オブジェクト</title>
53             <para>
54                 <classname>Zend_Search_Lucene</classname> は、ドキュメント単位でインデックスを作成します。
55                 ドキュメントは名前つきのフィールドから構成され、
56                 検索対象のコンテンツがフィールドの中に含まれます。
57             </para>
59             <para>
60                 ドキュメントを表すのが <classname>Zend_Search_Lucene_Document</classname>
61                 オブジェクトです。このオブジェクトの中には、フィールドを表す
62                 <classname>Zend_Search_Lucene_Field</classname> オブジェクトが含まれます。
63             </para>
65             <para>
66                 あらゆる種類の情報がインデックス化される可能性があることに注意しましょう。
67                 アプリケーション固有の情報やメタデータをドキュメントのフィールドに格納し、
68                 検索結果のドキュメントとして後で取得できます。
69             </para>
71             <para>
72                 インデクサを制御するのは、あなたが作成するアプリケーションの役割です。
73                 ということは、あなたのアプリケーションからアクセス可能な、
74                 あらゆる内容のデータがインデックス化される可能性があるということです。
75                 例えばファイルシステム、データベース、HTML フォームなどが考えられます。
76             </para>
78             <para>
79                 <classname>Zend_Search_Lucene_Field</classname> クラスには、
80                 さまざまな性質のフィールドを作成するための静的メソッドが定義されています。
81             </para>
83             <programlisting language="php"><![CDATA[
84 $doc = new Zend_Search_Lucene_Document();
86 // フィールドはトークン化されませんが、インデックス化されて保存されます。
87 // 保存されたフィールドは、インデックスから取得できます。
88 $doc->addField(Zend_Search_Lucene_Field::Keyword('doctype',
89                                                  'autogenerated'));
91 // フィールドはトークン化もインデックス化も行われませんが、インデックスに保存されます。
92 $doc->addField(Zend_Search_Lucene_Field::UnIndexed('created',
93                                                    time()));
95 // バイナリ文字列フィールドはトークン化もインデックス化も行われません。
96 // しかしインデックスには保存されます。
97 $doc->addField(Zend_Search_Lucene_Field::Binary('icon',
98                                                 $iconData));
100 // フィールドがトークン化・インデックス化されてインデックスに保存されます。
101 $doc->addField(Zend_Search_Lucene_Field::Text('annotation',
102                                               'Document annotation text'));
104 // フィールドはトークン化されてインデックス化されますが、インデックスには保存されません。
105 $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
106                                                   'My document content'));
107 ]]></programlisting>
109             <para>
110                 これらの各メソッド (<methodname>Zend_Search_Lucene_Field::Binary()</methodname>
111                 メソッドを除く) は、オプションのパラメータ
112                 <code>$encoding</code> を持っています。
113                 これで入力データのエンコーディングを指定します。
114             </para>
116             <para>
117                 エンコーディングはドキュメントによって異なるでしょうし、
118                 同一ドキュメント内でもフィールドによって異なることもあるでしょう。
120                 <programlisting language="php"><![CDATA[
121 $doc = new Zend_Search_Lucene_Document();
122 $doc->addField(Zend_Search_Lucene_Field::Text('title',
123                                               $title,
124                                               'iso-8859-1'));
125 $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
126                                                   $contents,
127                                                   'utf-8'));
128 ]]></programlisting>
129             </para>
131             <para>
132                 エンコーディングパラメータを省略した場合は、
133                 現在のロケールが処理時に使用されます。たとえば次のようになります。
134                 <programlisting language="php"><![CDATA[
135 setlocale(LC_ALL, 'de_DE.iso-8859-1');
137 $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $contents));
138 ]]></programlisting>
139             </para>
141             <para>
142                 フィールドをインデックス化したり返したりする際には、
143                 常に UTF-8 エンコーディングとなります。UTF-8 への変換は自動的に行われます。
144             </para>
146             <para>
147                 テキスト解析器 (<link linkend="zend.search.lucene.extending.analysis">以下を参照ください</link>)
148                 は、テキストをその他のエンコーディングに変換したりもします。
149                 実際、デフォルトの解析器はテキストを 'ASCII//TRANSLIT' エンコーディングに変換します。
150                 ここで注意が必要なのは、このような変換は現在のロケールに依存して行われるということです。
151             </para>
153             <para>
154                 フィールドの名前は <methodname>addField()</methodname> メソッドで自由につけることができます。
155             </para>
157             <para>
158                 Java Lucene は、検索の際にデフォルトで使用されるフィールド名として "contents" を使用します。
159                 <classname>Zend_Search_Lucene</classname> は、デフォルトではすべてのフィールドを検索します。
160                 しかし、この挙動を変更することもできます。詳細は
161                 <link linkend="zend.search.lucene.query-language.fields">"デフォルトの検索フィールド"</link>
162                 の章を参照ください。
163             </para>
164     </sect2>
166     <sect2 id="zend.search.lucene.index-creation.understanding-field-types">
167         <title>フィールド型について理解する</title>
168         <itemizedlist>
169             <listitem>
170                 <para>
171                     <code>Keyword</code> フィールドは、保存されインデックス化されます。
172                     つまり、検索した際に元の内容がそのまま返されるということです。
173                     トークン化は行われません (いくつかの単語に分割されることはありません)。
174                     列挙方のデータベースフィールドは、通常は <classname>Zend_Search_Lucene</classname> の
175                     Keyword フィールドにうまく収まることでしょう。
176                 </para>
177             </listitem>
178             <listitem>
179                 <para>
180                     <code>UnIndexed</code> フィールドは検索対象になりませんが、
181                     検索結果としては返されます。このフィールドに設定する値としては、
182                     データベースのタイムスタンプ、主キー、ファイルシステムのパス
183                     およびその他の外部識別子などがあります。
184                 </para>
185             </listitem>
186             <listitem>
187                 <para>
188                     <code>Binary</code> フィールドは、トークン化もインデックス化も行われません。
189                     しかし、検索結果として取得できるように保存されます。
190                     画像アイコンのようなバイナリデータをバイナリ文字列として
191                     エンコードしたものなどに対して使用します。
192                 </para>
193             </listitem>
194             <listitem>
195                 <para>
196                     <code>Text</code> フィールドは、保存されインデックス化され、
197                     そしてトークン化されます。検索項目として使用し、
198                     かつ検索結果としても取得したいような項目、
199                     例えばタイトルなどを保存するのに適しています。
200                 </para>
201             </listitem>
202             <listitem>
203                 <para>
204                     <code>UnStored</code> フィールドはトークン化されインデックス化されます。
205                     しかしインデックスには保存されません。大量のテキストなどに適しています。
206                     データを保存してしまうとディスク上のインデックスのサイズが大きくなってしまうので、
207                     検索はしたいが結果としてそれを表示する必要がない場合などは、
208                     このフィールドを使用しましょう。<classname>Zend_Search_Lucene</classname> インデックスを
209                     リレーショナルデータベースと組み合わせて使用する場合などには
210                     UnStored フィールドが実用的に使用できるでしょう。
211                     大きなデータフィールドの内容の検索用に UnStored フィールドに保存し、
212                     結果をデータベースから取得するために、もうひとつ別の ID フィールドを使用します。
213                </para>
215                 <table id="zend.search.lucene.index-creation.understanding-field-types.table">
216                     <title>Zend_Search_Lucene_Field の型</title>
217                     <tgroup cols="5">
218                         <thead>
219                             <row>
220                                 <entry>フィールド型</entry>
221                                 <entry>保存</entry>
222                                 <entry>インデックス化</entry>
223                                 <entry>トークン化</entry>
224                                 <entry>バイナリ</entry>
225                             </row>
226                         </thead>
227                         <tbody>
228                             <row>
229                                 <entry>Keyword</entry>
230                                 <entry>Yes</entry>
231                                 <entry>Yes</entry>
232                                 <entry>No</entry>
233                                 <entry>No</entry>
234                             </row>
235                             <row>
236                                 <entry>UnIndexed</entry>
237                                 <entry>Yes</entry>
238                                 <entry>No</entry>
239                                 <entry>No</entry>
240                                 <entry>No</entry>
241                             </row>
242                             <row>
243                                 <entry>Binary</entry>
244                                 <entry>Yes</entry>
245                                 <entry>No</entry>
246                                 <entry>No</entry>
247                                 <entry>Yes</entry>
248                             </row>
249                             <row>
250                                 <entry>Text</entry>
251                                 <entry>Yes</entry>
252                                 <entry>Yes</entry>
253                                 <entry>Yes</entry>
254                                 <entry>No</entry>
255                             </row>
256                             <row>
257                                 <entry>UnStored</entry>
258                                 <entry>No</entry>
259                                 <entry>Yes</entry>
260                                 <entry>Yes</entry>
261                                 <entry>No</entry>
262                             </row>
263                         </tbody>
264                     </tgroup>
265                 </table>
266            </listitem>
267        </itemizedlist>
268     </sect2>
270     <sect2 id="zend.search.lucene.index-creation.html-documents">
271         <title>HTML ドキュメント</title>
272         <para>
273             <classname>Zend_Search_Lucene</classname> には HTML をパースする機能もあります。
274             次のようにして、HTML ファイルや文字列からドキュメントを直接作成できます。
275             <programlisting language="php"><![CDATA[
276 $doc = Zend_Search_Lucene_Document_Html::loadHTMLFile($filename);
277 $index->addDocument($doc);
279 $doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
280 $index->addDocument($doc);
281 ]]></programlisting>
282         </para>
284         <para>
285             <classname>Zend_Search_Lucene_Document_Html</classname> クラスは、
286             <methodname>DOMDocument::loadHTML()</methodname> および
287             <methodname>DOMDocument::loadHTMLFile()</methodname> メソッドを用いてソース HTML
288             をパースしています。つまり、対象となる HTML は整形式である必要はなく、
289             また XHTML である必要もありません。一方、ヘッダの "meta http-equiv"
290             タグで、エンコーディングをきちんと設定しておく必要があります。
291         </para>
293         <para>
294             <classname>Zend_Search_Lucene_Document_Html</classname> クラスは、
295             ドキュメントのタイトル、本文そしてヘッダの meta タグの内容を認識します。
296         </para>
298         <para>
299             'title' フィールドには /html/head/title の値が入ります。
300             これはインデックスないにトークン化して保存され、検索の対象となります。
301         </para>
303         <para>
304             'body' フィールドには body の中身が入ります。
305             スクリプトやコメント、そしてタグの属性は含まれません。
306         </para>
308         <para>
309             <classname>Zend_Search_Lucene_Document_Html</classname> クラスの
310             <methodname>loadHTML()</methodname> および <methodname>loadHTMLFile()</methodname> メソッドには、
311             オプションの二番目の引数もあります。これを <constant>TRUE</constant> に設定すると、
312             body の中身もインデックスに格納され、インデックスから取得できるようになります。
313             body はトークン化とインデックス化だけが行われ、デフォルトでは保存されません。
314         </para>
315         <para>
316             <methodname>loadHTML()</methodname> メソッドおよび <methodname>loadHTMLFile()</methodname>
317             メソッドの三番目のパラメータはオプションで、元の HTML ドキュメントのエンコーディングを指定します。
318             省略した場合は、Content-type HTTP-EQUIV meta タグを使用します。
319         </para>
321         <para>
322             ドキュメントヘッダの meta タグの内容をもとに、追加のフィールドを作成します。
323             フィールドの名前は 'name' 属性から取得します。そして
324             'content' 属性の内容がその値となります。これはトークン化、インデックス化した上で
325             保存されます。つまり、ドキュメントは meta タグの内容をもとにして
326             (たとえばキーワードによって) 検索できるようになるわけです。
327         </para>
329         <para>
330             パースされたドキュメントに、ユーザが別のフィールドを拡張できます。
331             <programlisting language="php"><![CDATA[
332 $doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
333 $doc->addField(Zend_Search_Lucene_Field::UnIndexed('created',
334                                                    time()));
335 $doc->addField(Zend_Search_Lucene_Field::UnIndexed('updated',
336                                                    time()));
337 $doc->addField(Zend_Search_Lucene_Field::Text('annotation',
338                                               'Document annotation text'));
339 $index->addDocument($doc);
340 ]]></programlisting>
341         </para>
343         <para>
344             作成されたドキュメントにはリンクは含まれません。しかし、
345             <methodname>Zend_Search_Lucene_Document_Html::getLinks()</methodname> および
346             <methodname>Zend_Search_Lucene_Document_Html::getHeaderLinks()</methodname>
347             メソッドでリンクを取得することもできます。
348             <programlisting language="php"><![CDATA[
349 $doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
350 $linksArray = $doc->getLinks();
351 $headerLinksArray = $doc->getHeaderLinks();
352 ]]></programlisting>
353         </para>
355         <para>
356             Zend Framework 1.6 以降では、<code>rel</code> 属性が
357             <code>'nofollow'</code> に設定されているリンクを除外できるようになりました。
358             このオプションを有効にするには
359             <methodname>Zend_Search_Lucene_Document_Html::setExcludeNoFollowLinks($true)</methodname>
360             を使用します。
361         </para>
362         <para>
363             <methodname>Zend_Search_Lucene_Document_Html::getExcludeNoFollowLinks()</methodname>
364             メソッドは、この "nofollow リンクを除外する"
365             フラグの現在の状態を返します。
366         </para>
367     </sect2>
369     <sect2 id="zend.search.lucene.index-creation.docx-documents">
370         <title>Word 2007 ドキュメント</title>
371         <para>
372             <classname>Zend_Search_Lucene</classname> には Word 2007 のパース機能があります。Word 2007 ファイルから直接ドキュメントを作成できます。
373             <programlisting language="php"><![CDATA[
374 $doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($filename);
375 $index->addDocument($doc);
376 ]]></programlisting>
377         </para>
379         <para>
380             <classname>Zend_Search_Lucene_Document_Docx</classname> クラスは、<code>ZipArchive</code> クラスと
381             <code>simplexml</code> のメソッドでドキュメントをパースします。<code>ZipArchive</code> クラス (php_zip モジュール)
382             が使用できない場合は、<classname>Zend_Search_Lucene_Document_Docx</classname> を Zend Framework で使用することはできません。
383         </para>
385         <para>
386             <classname>Zend_Search_Lucene_Document_Docx</classname> クラスは、ドキュメントのメタデータとテキストを扱います。メタデータに含まれる内容は、ドキュメントの内容によって filename, title, subject, creator, keywords, description, lastModifiedBy, revision, modified, created などがあります。
387         </para>
389         <para>
390             'filename' フィールドは、実際の Word 2007 ファイルのファイル名です。
391         </para>
393         <para>
394             'title' フィールドは、実際のドキュメントのタイトルです。
395         </para>
397         <para>
398             'subject' フィールドは、実際のドキュメントの表題です。
399         </para>
401         <para>
402             'creator' フィールドは、実際のドキュメントの作成者です。
403         </para>
405         <para>
406             'keywords' フィールドは、実際のドキュメントのキーワードです。
407         </para>
409         <para>
410             'description' フィールドは、実際のドキュメントの説明です。
411         </para>
413         <para>
414             'lastModifiedBy' フィールドは、実際のドキュメントを最後に編集したユーザ名です。
415         </para>
417         <para>
418             'revision' フィールドは、実際のドキュメントのリビジョン番号です。
419         </para>
421         <para>
422             'modified' フィールドは、実際のドキュメントの最終更新日時です。
423         </para>
425         <para>
426             'created' フィールドは、実際のドキュメントの作成日時です。
427         </para>
429         <para>
430             'body' フィールドは、Word 2007 ドキュメントの実際の本文です。ここに含まれるのは通常のテキストのみで、コメントやリビジョンは含まれません。
431         </para>
433         <para>
434             <classname>Zend_Search_Lucene_Document_Docx</classname> クラスの <methodname>loadDocxFile()</methodname>
435             メソッドにもオプションの 2 番目の引数があります。これを <constant>TRUE</constant> に設定すると、
436             本文もインデックスに格納されてインデックスから取得できるようになります。
437             デフォルトでは、本文のトークン化とインデックスの作成は行いますがインデックスには格納されません。
438         </para>
440         <para>
441             パースしたドキュメントに、プログラマが任意のフィールドを追加できます。
442             <programlisting language="php"><![CDATA[
443 $doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($filename);
444 $doc->addField(Zend_Search_Lucene_Field::UnIndexed(
445     'indexTime',
446     time())
448 $doc->addField(Zend_Search_Lucene_Field::Text(
449     'annotation',
450     'Document annotation text')
452 $index->addDocument($doc);
453 ]]></programlisting>
454         </para>
456     </sect2>
458     <sect2 id="zend.search.lucene.index-creation.pptx-documents">
459         <title>Powerpoint 2007 ドキュメント</title>
460         <para>
461             <classname>Zend_Search_Lucene</classname> には Powerpoint 2007 のパース機能があります。Powerpoint 2007 ファイルから直接ドキュメントを作成できます。
462             <programlisting language="php"><![CDATA[
463 $doc = Zend_Search_Lucene_Document_Pptx::loadPptxFile($filename);
464 $index->addDocument($doc);
465 ]]></programlisting>
466         </para>
468         <para>
469             <classname>Zend_Search_Lucene_Document_Pptx</classname> クラスは、<code>ZipArchive</code> クラスと
470             <code>simplexml</code> のメソッドでドキュメントをパースします。<code>ZipArchive</code> クラス (php_zip モジュール)
471             が使用できない場合は、<classname>Zend_Search_Lucene_Document_Pptx</classname> を Zend Framework で使用することはできません。
472         </para>
474         <para>
475             <classname>Zend_Search_Lucene_Document_Pptx</classname> クラスは、ドキュメントのメタデータとテキストを扱います。メタデータに含まれる内容は、ドキュメントの内容によって filename, title, subject, creator, keywords, description, lastModifiedBy, revision, modified, created などがあります。
476         </para>
478         <para>
479             'filename' フィールドは、実際の Powerpoint 2007 ファイルのファイル名です。
480         </para>
482         <para>
483             'title' フィールドは、実際のドキュメントのタイトルです。
484         </para>
486         <para>
487             'subject' フィールドは、実際のドキュメントの表題です。
488         </para>
490         <para>
491             'creator' フィールドは、実際のドキュメントの作成者です。
492         </para>
494         <para>
495             'keywords' フィールドは、実際のドキュメントのキーワードです。
496         </para>
498         <para>
499             'description' フィールドは、実際のドキュメントの説明です。
500         </para>
502         <para>
503             'lastModifiedBy' フィールドは、実際のドキュメントを最後に編集したユーザ名です。
504         </para>
506         <para>
507             'revision' フィールドは、実際のドキュメントのリビジョン番号です。
508         </para>
510         <para>
511             'modified' フィールドは、実際のドキュメントの最終更新日時です。
512         </para>
514         <para>
515             'created' フィールドは、実際のドキュメントの作成日時です。
516         </para>
518         <para>
519             'body' フィールドは、Powerpoint 2007 ドキュメントのすべてのスライドとノートの実際の本文です。
520         </para>
522         <para>
523             <classname>Zend_Search_Lucene_Document_Pptx</classname> クラスの <methodname>loadPptxFile()</methodname>
524             メソッドにもオプションの 2 番目の引数があります。これを <constant>TRUE</constant> に設定すると、
525             本文もインデックスに格納されてインデックスから取得できるようになります。
526             デフォルトでは、本文のトークン化とインデックスの作成は行いますがインデックスには格納されません。
527         </para>
529         <para>
530             パースしたドキュメントに、プログラマが任意のフィールドを追加できます。
531             <programlisting language="php"><![CDATA[
532 $doc = Zend_Search_Lucene_Document_Pptx::loadPptxFile($filename);
533 $doc->addField(Zend_Search_Lucene_Field::UnIndexed(
534     'indexTime',
535     time()));
536 $doc->addField(Zend_Search_Lucene_Field::Text(
537     'annotation',
538     'Document annotation text'));
539 $index->addDocument($doc);
540 ]]></programlisting>
541         </para>
542     </sect2>
544     <sect2 id="zend.search.lucene.index-creation.xlsx-documents">
545         <title>Excel 2007 ドキュメント</title>
546         <para>
547             <classname>Zend_Search_Lucene</classname> には Excel 2007 のパース機能があります。Excel 2007 ファイルから直接ドキュメントを作成できます。
548             <programlisting language="php"><![CDATA[
549 $doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($filename);
550 $index->addDocument($doc);
551 ]]></programlisting>
552         </para>
554         <para>
555             <classname>Zend_Search_Lucene_Document_Xlsx</classname> クラスは、<code>ZipArchive</code> クラスと
556             <code>simplexml</code> のメソッドでドキュメントをパースします。<code>ZipArchive</code> クラス (php_zip モジュール)
557             が使用できない場合は、<classname>Zend_Search_Lucene_Document_Xlsx</classname> を Zend Framework で使用することはできません。
558         </para>
560         <para>
561             <classname>Zend_Search_Lucene_Document_Xlsx</classname> クラスは、ドキュメントのメタデータとテキストを扱います。メタデータに含まれる内容は、ドキュメントの内容によって filename, title, subject, creator, keywords, description, lastModifiedBy, revision, modified, created などがあります。
562         </para>
564         <para>
565             'filename' フィールドは、実際の Excel 2007 ファイルのファイル名です。
566         </para>
568         <para>
569             'title' フィールドは、実際のドキュメントのタイトルです。
570         </para>
572         <para>
573             'subject' フィールドは、実際のドキュメントの表題です。
574         </para>
576         <para>
577             'creator' フィールドは、実際のドキュメントの作成者です。
578         </para>
580         <para>
581             'keywords' フィールドは、実際のドキュメントのキーワードです。
582         </para>
584         <para>
585             'description' フィールドは、実際のドキュメントの説明です。
586         </para>
588         <para>
589             'lastModifiedBy' フィールドは、実際のドキュメントを最後に編集したユーザ名です。
590         </para>
592         <para>
593             'revision' フィールドは、実際のドキュメントのリビジョン番号です。
594         </para>
596         <para>
597             'modified' フィールドは、実際のドキュメントの最終更新日時です。
598         </para>
600         <para>
601             'created' フィールドは、実際のドキュメントの作成日時です。
602         </para>
604         <para>
605             'body' フィールドは、Excel 2007 ドキュメントのすべてのワークシートのすべてのセルの実際の内容です。
606         </para>
608         <para>
609             <classname>Zend_Search_Lucene_Document_Xlsx</classname> クラスの <methodname>loadXlsxFile()</methodname>
610             メソッドにもオプションの 2 番目の引数があります。これを <constant>TRUE</constant> に設定すると、
611             本文もインデックスに格納されてインデックスから取得できるようになります。
612             デフォルトでは、本文のトークン化とインデックスの作成は行いますがインデックスには格納されません。
613         </para>
615         <para>
616             パースしたドキュメントに、プログラマが任意のフィールドを追加できます。
617             <programlisting language="php"><![CDATA[
618 $doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($filename);
619 $doc->addField(Zend_Search_Lucene_Field::UnIndexed(
620     'indexTime',
621     time()));
622 $doc->addField(Zend_Search_Lucene_Field::Text(
623     'annotation',
624     'Document annotation text'));
625 $index->addDocument($doc);
626 ]]></programlisting>
627         </para>
628     </sect2>
629 </sect1>