| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138 |
- <sect1 id="zend.search.lucene.java-lucene">
- <title>Interoperatie met Java Lucene</title>
- <sect2 id="zend.search.lucene.index-creation.file-formats">
- <title>Bestandsformaten</title>
- <para>
- Het bestandsformaat van het Zend_Search_Lucene index bestand is binary compatible met Lucene
- versie 1.4 en hoger.
- </para>
- <para>
- Een gedetailleerde beschrijving van dit formaat is beschikbaar op:
- <ulink url="http://lucene.apache.org/java/docs/fileformats.html"/>.
- </para>
- </sect2>
- <sect2 id="zend.search.lucene.index-creation.index-directory">
- <title>Index Map</title>
- <para>
- Na het aanmaken van de index zal de index map verschillende bestanden bevatten:
- </para>
- <itemizedlist>
- <listitem>
- <para>
- het <filename>segments</filename> bestand is een lijst van index segmenten.
- </para>
- </listitem>
- <listitem>
- <para>
- <filename>*.cfs</filename> bestanden bevatten index segmenten.
- Nota! Een geoptimaliseerde index heeft altijd slechts één segment.
- </para>
- </listitem>
- <listitem>
- <para>
- het <filename>deletable</filename> bestand is een lijst bestanden die niet langer
- worden gebruikt door de index, maar niet konden worden verwijderd.
- </para>
- </listitem>
- </itemizedlist>
- </sect2>
- <sect2 id="zend.search.lucene.java-lucene.source-code">
- <title>Java Broncode</title>
- <para>
- Het volgende Java programmavoorbeeld geeft een voorbeeld van hoe je een bestand
- indexeert via Java Lucene:
- </para>
- <programlisting role="java"><![CDATA[
- /**
- * Aanmaak van de Index:
- */
- import org.apache.lucene.index.IndexWriter;
- import org.apache.lucene.document.*;
- import java.io.*
- ...
- IndexWriter indexWriter = new IndexWriter("/data/mijn_index",
- new SimpleAnalyzer(), true);
- ...
- String filename = "/pad/naar/bestand-dat-moet-worden-geindexeerd.txt"
- File f = new File(filename);
- Document doc = new Document();
- doc.add(Field.Text("path", filename));
- doc.add(Field.Keyword("modified",DateField.timeToString(f.lastModified())));
- doc.add(Field.Text("author", "unknown"));
- FileInputStream is = new FileInputStream(f);
- Reader reader = new BufferedReader(new InputStreamReader(is));
- doc.add(Field.Text("contents", reader));
- indexWriter.addDocument(doc);]]>
- </programlisting>
- </sect2>
- <sect2 id="zend.search.lucene.java-lucene.jar">
- <title>LuceneIndexCreation.jar gebruiken</title>
- <para>
- Om snel te kunnen starten met Zend_Search_Lucene werd een JAR bestand (Java) aangemaakt
- dat je toelaat een index vanaf de commandoregel aan te maken. Voor meer informatie over
- JAR bestanden kan je terecht op: <ulink url="http://java.sun.com/docs/books/tutorial/jar/basics/index.html"/>.
- </para>
- <para>
- LuceneIndexCreation.jar leest tekst bestanden door en maakt er een index voor aan. Gebruik:
- </para>
- <programlisting role="java"><![CDATA[
- java -jar LuceneIndexCreation.jar [-c] [-s] <document_pad> <index_pad>
- -c - dwing de index naar case sensitive
- -s - inhoud in de index opslaan
- ]]></programlisting>
- <para>
- Dit commando leest een map <code><document_map></code> door, inclusief alle onderliggende mappen,
- en maakt een Lucene index aan. De index is een set bestanden die in een andere map, gespecificeerd door
- <code><index_map></code>, zullen worden opgeslagen..
- </para>
- <para>
- Voor elk document dat moet worden geïndexeerd maakt LuceneIndexCreation een documentobject aan
- met drie velden: een <emphasis>contents</emphasis> veld dat de inhoud (body) van het document
- bevat en een <emphasis>modifies</emphasis> veld dat de bestandswijzigingstijd bevat en tenslotte het
- <code><path></code> veld dat het volledige pad en de bestandsnaam bevat.
- </para>
- <para>
- Indien de <option>-c</option> optie werd gespecificeerd zal de index tot case sensitive gedwongen worden. Indien
- niet, zullen alle termen naar kleine letters worden geconverteerd voor ze aan de index worden toegevoegd.
- </para>
- <para>
- Indien de <option>-s</option> optie werd gespecificeerd, zal de inhoud van het document ook in de index
- worden opgeslagen. Die kan dan via de velden <code>path</code> en <code>modified</code> worden opgeroepen.
- </para>
- <para>
- Anders worden alleen de <code>path</code> en <code>modified</code> velden opgeslagen, en
- het <code>contents</code> veld wordt slechts geïndexeerd. In dat geval moet de documentinhoud
- vanaf een oorspronkelijke bron worden opgehaald via zijn <code>path</code>.
- </para>
- <para>
- Wees voorzichtig, het gebruik van de <option>-s</option> optie vergroot de index ongeveer vijf maal.
- </para>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|