Zend_Search_Lucene-JavaLucene.xml 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <sect1 id="zend.search.lucene.java-lucene">
  2. <title>与 Java Lucene 的互操作性</title>
  3. <sect2 id="zend.search.lucene.index-creation.file-formats">
  4. <title>文件格式</title>
  5. <para>
  6. Zend_Search_Lucene 的索引文件格式和 1.4 或更高版本的 Java Lucene 二进制兼容。
  7. </para>
  8. <para>
  9. 关于文件格式的更详细的描述在这里:
  10. <ulink url="http://lucene.apache.org/java/docs/fileformats.html"/>。
  11. <footnote><para> 当前支持的 Lucene 索引文件格式版本是 v2.3(从ZF 1.6 版开始)。</para></footnote>
  12. </para>
  13. </sect2>
  14. <sect2 id="zend.search.lucene.index-creation.index-directory">
  15. <title>索引目录</title>
  16. <para>
  17. 在创建了索引之后,索引目录中将包含下列文件:
  18. </para>
  19. <itemizedlist>
  20. <listitem>
  21. <para>
  22. <filename>segments</filename> 文件是一个索引分段的清单。
  23. </para>
  24. </listitem>
  25. <listitem>
  26. <para>
  27. <filename>*.cfs</filename> 文件包含索引分段。请注意!优化了的索引总是只有一个分段。
  28. </para>
  29. </listitem>
  30. <listitem>
  31. <para>
  32. <filename>deletable</filename> 文件是一个不再被索引使用但是无法删除的文件清单。
  33. </para>
  34. </listitem>
  35. </itemizedlist>
  36. </sect2>
  37. <sect2 id="zend.search.lucene.java-lucene.source-code">
  38. <title>Java 源代码</title>
  39. <para>
  40. 下面的 Java 程序提供了一个如何使用 Java Lucene 索引文件的例子:
  41. </para>
  42. <programlisting role="java"><![CDATA[
  43. /**
  44. * Index creation:
  45. */
  46. import org.apache.lucene.index.IndexWriter;
  47. import org.apache.lucene.document.*;
  48. import java.io.*
  49. ...
  50. IndexWriter indexWriter = new IndexWriter("/data/my_index",
  51. new SimpleAnalyzer(), true);
  52. ...
  53. String filename = "/path/to/file-to-index.txt"
  54. File f = new File(filename);
  55. Document doc = new Document();
  56. doc.add(Field.Text("path", filename));
  57. doc.add(Field.Keyword("modified",DateField.timeToString(f.lastModified())));
  58. doc.add(Field.Text("author", "unknown"));
  59. FileInputStream is = new FileInputStream(f);
  60. Reader reader = new BufferedReader(new InputStreamReader(is));
  61. doc.add(Field.Text("contents", reader));
  62. indexWriter.addDocument(doc);
  63. ]]>
  64. </programlisting>
  65. </sect2>
  66. </sect1>
  67. <!--
  68. vim:se ts=4 sw=4 et:
  69. -->