Zend_Search_Lucene-JavaLucene.xml 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. <sect1 id="zend.search.lucene.java-lucene">
  2. <title>Interoperando com Java Lucene</title>
  3. <sect2 id="zend.search.lucene.index-creation.file-formats">
  4. <title>Formatos de arquivo</title>
  5. <para>Arquivos Zend_Search_Lucene são arquivos de índice binários
  6. compatíveis com a versão 1.4 ou superior do Lucene.</para>
  7. <para>Uma descrição detalhada deste formato está disponível aqui: <ulink
  8. url="http://lucene.apache.org/java/docs/fileformats.html"></ulink>.</para>
  9. </sect2>
  10. <sect2 id="zend.search.lucene.index-creation.index-directory">
  11. <title>Diretório índice</title>
  12. <para>Após a criação do índice, o diretório índice conterá os seguintes
  13. arquivos:</para>
  14. <itemizedlist>
  15. <listitem>
  16. <para>O arquivo <filename>segments</filename> contém uma lista de
  17. segmentos de índice.</para>
  18. </listitem>
  19. <listitem>
  20. <para>Os arquivos <filename>*.cfs</filename> contém segmentos de
  21. índice. Nota! Um índice otimizado terá apenas um único
  22. segmento.</para>
  23. </listitem>
  24. <listitem>
  25. <para>O arquivo <filename>deletable</filename> contém uma lista de
  26. arquivos que não são mais utilizados pelo índice, mas que não puderam
  27. ser removidos.</para>
  28. </listitem>
  29. </itemizedlist>
  30. </sect2>
  31. <sect2 id="zend.search.lucene.java-lucene.source-code">
  32. <title>Código fonte Java</title>
  33. <para>A listagem do programa Java abaixo oferece um exemplo de como
  34. indexar um arquivo usando Java Lucene:</para>
  35. <programlisting role="java">
  36. /**
  37. * Index creation:
  38. */
  39. import org.apache.lucene.index.IndexWriter;
  40. import org.apache.lucene.document.*;
  41. import java.io.*
  42. ...
  43. IndexWriter indexWriter = new IndexWriter("/data/my_index",
  44. new SimpleAnalyzer(), true);
  45. ...
  46. String filename = "/path/to/file-to-index.txt"
  47. File f = new File(filename);
  48. Document doc = new Document();
  49. doc.add(Field.Text("path", filename));
  50. doc.add(Field.Keyword("modified",DateField.timeToString(f.lastModified())));
  51. doc.add(Field.Text("author", "unknown"));
  52. FileInputStream is = new FileInputStream(f);
  53. Reader reader = new BufferedReader(new InputStreamReader(is));
  54. doc.add(Field.Text("contents", reader));
  55. indexWriter.addDocument(doc);
  56. </programlisting>
  57. </sect2>
  58. <sect2 id="zend.search.lucene.java-lucene.jar">
  59. <title>Usando LuceneIndexCreation.jar</title>
  60. <para>Para acelerar o aprendizado do Zend_Search_Lucene, rode o arquivo
  61. JAR (Java) abaixo, conforme o exemplo, para gerar um índice a partir da
  62. linha de comando. Para maiores informações sobre arquivos JAR visite:
  63. <ulink
  64. url="http://java.sun.com/docs/books/tutorial/jar/basics/index.html"></ulink>.</para>
  65. <para>O programa LuceneIndexCreation.jar processa arquivos de texto,
  66. gerando índices a partir deles . Utilização: <programlisting role="java">
  67. java -jar LuceneIndexCreation.jar [-c] [-s] &lt;document_dir&gt; &lt;index_dir&gt;
  68. -c - force index to be case sensitive
  69. -s - store content in the index
  70. </programlisting> Este comando processa o diretório
  71. <code>&lt;document_dir&gt;</code>, incluíndo todos os seus subdiretórios,
  72. produzindo um índice Lucene. O índice é um conjunto de arquivos que serão
  73. armazenados em um diretório reservado especificado por
  74. <code>&lt;index_dir&gt;</code>.</para>
  75. <para>Para cada documento a ser indexado, LuceneIndexCreation cria um
  76. objeto documento contendo três campos: um campo
  77. <emphasis>contents</emphasis> que armazena o corpo do documento, um campo
  78. <emphasis>modified</emphasis> indicando a hora de modificação do arquivo,
  79. e um campo <emphasis>path</emphasis> contendo o nome e caminho completo
  80. para o arquivo.</para>
  81. <para>O parâmetro <option>-c</option>, quando especificado, força o índice
  82. a ser sensível à caixa. Se omitido, todos os termos serão convertidos para
  83. caractéres minúsculos antes de serem adicionados ao índice.</para>
  84. <para>O parâmetro <option>-s</option>, determina que o campo
  85. <code>contents</code> seja gravado no índice para ser retornado junto com
  86. os campos <code>path</code> e <code>modified</code>.</para>
  87. <para>Se omitido, <code>contents</code> será indexado e <code>path</code>
  88. e <code>modified</code> serão armazenados. Neste caso o conteúdo do
  89. documento deverá ser recuperado a partir de uma fonte original indicada
  90. pelo campo <code>path</code>.</para>
  91. <para>Seja criterioso ao usar a opção <option>-s</option>, pois ela
  92. aumenta o tamanho do índice em cerca de cinco vezes
  93. aproximadamente.</para>
  94. </sect2>
  95. </sect1>
  96. <!--
  97. vim:se ts=4 sw=4 et:
  98. -->