|
|
@@ -5,8 +5,8 @@
|
|
|
<title>Indexation</title>
|
|
|
|
|
|
<para>
|
|
|
- L'indexation s'effectue en ajoutant un nouveau document à un index existant ou à un nouvel
|
|
|
- index :
|
|
|
+ L'indexation s'effectue en ajoutant un nouveau document à un index existant ou à un
|
|
|
+ nouvel index :
|
|
|
</para>
|
|
|
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
@@ -14,7 +14,8 @@ $index->addDocument($doc);
|
|
|
]]></programlisting>
|
|
|
|
|
|
<para>
|
|
|
- Il y a deux manières de créer un objet document. La première est de le faire manuellement.
|
|
|
+ Il y a deux manières de créer un objet document. La première est de le faire
|
|
|
+ manuellement.
|
|
|
</para>
|
|
|
|
|
|
<example id="learning.lucene.indexing.doc-creation">
|
|
|
@@ -30,12 +31,13 @@ $doc->addField(Zend_Search_Lucene_Field::binary('avatar', $avatarData));
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- La seconde méthode est de le charger depuis un fichier <acronym>HTML</acronym>
|
|
|
- ou Microsoft Office 2007 :
|
|
|
+ La seconde méthode est de le charger depuis un fichier <acronym>HTML</acronym> ou
|
|
|
+ Microsoft Office 2007 :
|
|
|
</para>
|
|
|
|
|
|
<example id="learning.lucene.indexing.doc-loading">
|
|
|
<title>Chargement de document</title>
|
|
|
+
|
|
|
<programlisting language="php"><![CDATA[
|
|
|
$doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
$doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($path);
|
|
|
@@ -45,8 +47,8 @@ $doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($path);
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Si un document est chargé depuis l'un des formats supportés, il peut quand même être étendu
|
|
|
- manuellement avec des champs définis par l'utilisateur.
|
|
|
+ Si un document est chargé depuis l'un des formats supportés, il peut quand même être
|
|
|
+ étendu manuellement avec des champs définis par l'utilisateur.
|
|
|
</para>
|
|
|
|
|
|
<sect2 id="learning.lucene.indexing.policy">
|
|
|
@@ -58,28 +60,29 @@ $doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($path);
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Vous pourriez avoir besoin d'une configuration d'indexation à la demande
|
|
|
- (quelque chose comme le système <acronym>OLTP</acronym>).
|
|
|
- Sur de test systèmes, vous ajoutez généralement un document par requête utilisateur.
|
|
|
- De cette manière, l'option <emphasis>MaxBufferedDocs</emphasis> n'affectera pas le
|
|
|
- système. D'un autre coté, <emphasis>MaxMergeDocs</emphasis> est vraiment utile, car il
|
|
|
- vous permet de limiter le temps d'exécution maximum du script.
|
|
|
- <emphasis>MergeFactor</emphasis> doit être définis par une valeur qui conserve un
|
|
|
- équilibre entre le temps moyen d'indexation (il est aussi affecté par temps
|
|
|
- d'optimisation moyen) et les performance de recherche (le niveau d'optimisation dépend
|
|
|
- du nombre de segments).
|
|
|
+ Vous pourriez avoir besoin d'une configuration d'indexation à la demande (quelque
|
|
|
+ chose comme le système <acronym>OLTP</acronym>). Sur de test systèmes, vous ajoutez
|
|
|
+ généralement un document par requête utilisateur. De cette manière, l'option
|
|
|
+ <emphasis>MaxBufferedDocs</emphasis> n'affectera pas le système. D'un autre coté,
|
|
|
+ <emphasis>MaxMergeDocs</emphasis> est vraiment utile, car il vous permet de limiter le
|
|
|
+ temps d'exécution maximum du script. <emphasis>MergeFactor</emphasis> doit être définis
|
|
|
+ par une valeur qui conserve un équilibre entre le temps moyen d'indexation (il est
|
|
|
+ aussi affecté par temps d'optimisation moyen) et les performance de recherche (le
|
|
|
+ niveau d'optimisation dépend du nombre de segments).
|
|
|
</para>
|
|
|
|
|
|
<para>
|
|
|
- Si vous allez surtout effectuer des mises à jour d'index par lot, votre configuration
|
|
|
- devrait utiliser une option <emphasis>MaxBufferedDocs</emphasis> définis à la valeur
|
|
|
- maximum supporté par la quantité de mémoire disponible.
|
|
|
+ Si vous allez surtout effectuer des mises à jour d'index par lot, votre
|
|
|
+ configuration devrait utiliser une option <emphasis>MaxBufferedDocs</emphasis> définis
|
|
|
+ à la valeur maximum supporté par la quantité de mémoire disponible.
|
|
|
<emphasis>MaxMergeDocs</emphasis> et <emphasis>MergeFactor</emphasis> doivent être
|
|
|
définis à des valeurs réduisant au maximum le recours à l'auto-optimisation
|
|
|
- <footnote><para>Une limite additionnelle est le nombre maximum de gestionnaire de
|
|
|
- fichiers supporter par le système d'exploitation pour les opérations concurrente
|
|
|
- d'ouverture</para></footnote>. Les optimisations complètes d'index doivent être
|
|
|
- appliquées après l'indexation.
|
|
|
+ <footnote>
|
|
|
+ <para>Une limite additionnelle est le nombre maximum de gestionnaire de fichiers
|
|
|
+ supporter par le système d'exploitation pour les opérations concurrente
|
|
|
+ d'ouverture</para>
|
|
|
+ </footnote>.
|
|
|
+ Les optimisations complètes d'index doivent être appliquées après l'indexation.
|
|
|
</para>
|
|
|
|
|
|
<example id="learning.lucene.indexing.optimization">
|
|
|
@@ -91,10 +94,11 @@ $index->optimize();
|
|
|
</example>
|
|
|
|
|
|
<para>
|
|
|
- Dans certaines configuration, il est plus efficace d'effectuer une série de mise à jour
|
|
|
- de l'index en organisant une file de requête de mise à jour et de traiter plusieurs
|
|
|
- requête de mise à jour dans une seule exécution de script. Ceci réduit la charge
|
|
|
- d'ouverture de l'index et permet d'utiliser le tampon de document de l'index.
|
|
|
+ Dans certaines configuration, il est plus efficace d'effectuer une série de mise
|
|
|
+ à jour de l'index en organisant une file de requête de mise à jour et de traiter
|
|
|
+ plusieurs requête de mise à jour dans une seule exécution de script. Ceci réduit la
|
|
|
+ charge d'ouverture de l'index et permet d'utiliser le tampon de document de
|
|
|
+ l'index.
|
|
|
</para>
|
|
|
</sect2>
|
|
|
</sect1>
|