|
|
@@ -1,5 +1,5 @@
|
|
|
-<?xml version="1.0" encoding="utf-8"?>
|
|
|
-<!-- EN-Revision: 14448 -->
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!-- EN-Revision: 15225 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.search.lucene.overview">
|
|
|
<title>Vue d'ensemble</title>
|
|
|
@@ -7,60 +7,87 @@
|
|
|
<sect2 id="zend.search.lucene.introduction">
|
|
|
<title>Introduction</title>
|
|
|
|
|
|
- <para><classname>Zend_Search_Lucene</classname> est un moteur de recherche de contenus principalement textuels écrit
|
|
|
- entièrement en PHP 5. Comme il stocke ses index sur le système de fichiers et qu'il ne requiert pas de base de
|
|
|
- données, il peut offrir des fonctionnalités de recherche à presque n'importe quel site écrit en PHP.
|
|
|
- <classname>Zend_Search_Lucene</classname> dispose des caractéristiques suivantes : <itemizedlist>
|
|
|
- <listitem>
|
|
|
- <para>"Ranked searching" - les meilleurs résultats sont retournés en premier.</para>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Search_Lucene</classname> est un moteur de recherche de contenus
|
|
|
+ principalement textuels écrit entièrement en PHP 5. Comme il stocke ses index sur le
|
|
|
+ système de fichiers et qu'il ne requiert pas de base de données, il peut offrir des
|
|
|
+ fonctionnalités de recherche à presque n'importe quel site écrit en PHP.
|
|
|
+ <classname>Zend_Search_Lucene</classname> dispose des caractéristiques suivantes :
|
|
|
+ <itemizedlist>
|
|
|
+ <listitem>
|
|
|
+ <para>
|
|
|
+ "Ranked searching" - les meilleurs résultats sont retournés en
|
|
|
+ premier.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
- <para>Plusieurs puissants types de requêtes : phrase, booléen, astérisque, proximité, intervalle et
|
|
|
- bien d'autres.</para>
|
|
|
+ <para>
|
|
|
+ Plusieurs puissants types de requêtes : phrase, booléen, astérisque,
|
|
|
+ proximité, intervalle et bien d'autres.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
<para>Recherche par champ spécifique (p. ex. titre, auteur, contenus)</para>
|
|
|
</listitem>
|
|
|
- </itemizedlist> <classname>Zend_Search_Lucene</classname> est dérivé du projet Apache Lucene. Les versions actuelles
|
|
|
- de format d'index Lucene supportées (à partir de Zend Framework 1.6) sont 1.4 à 2.3. Pour plus d'informations
|
|
|
- sur Lucene, rendez-vous sur <ulink url="http://lucene.apache.org/java/docs/"></ulink>.</para>
|
|
|
+ </itemizedlist> <classname>Zend_Search_Lucene</classname> est dérivé du projet
|
|
|
+ Apache Lucene. Les versions actuelles de format d'index Lucene supportées (à partir de
|
|
|
+ Zend Framework 1.6) sont 1.4 à 2.3. Pour plus d'informations sur Lucene, rendez-vous sur
|
|
|
+ <ulink url="http://lucene.apache.org/java/docs/"></ulink>.
|
|
|
+ </para>
|
|
|
|
|
|
<note>
|
|
|
<title></title>
|
|
|
|
|
|
- <para>Les implémentations précédentes de <classname>Zend_Search_Lucene</classname> supportent les formats d'indexation
|
|
|
- Lucene 1.4 (1.9) à 2.1.</para>
|
|
|
-
|
|
|
- <para>A partir de Zend Framework 1.5, tout index créé en utilisant une version antérieure à la 2.1 et
|
|
|
- automatiquement mis à niveau au format Lucene 2.1 après la mise à jour de <classname>Zend_Search_Lucene</classname> et
|
|
|
- ne sera pas compatible avec les implémentations de <classname>Zend_Search_Lucene</classname> incluses dans Zend
|
|
|
- Framework 1.0.x.</para>
|
|
|
+ <para>
|
|
|
+ Les implémentations précédentes de <classname>Zend_Search_Lucene</classname>
|
|
|
+ supportent les formats d'indexation Lucene 1.4 (1.9) à 2.1.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ A partir de Zend Framework 1.5, tout index créé en utilisant une version
|
|
|
+ antérieure à la 2.1 et automatiquement mis à niveau au format Lucene 2.1 après la
|
|
|
+ mise à jour de <classname>Zend_Search_Lucene</classname> et ne sera pas compatible
|
|
|
+ avec les implémentations de <classname>Zend_Search_Lucene</classname> incluses dans
|
|
|
+ Zend Framework 1.0.x.
|
|
|
+ </para>
|
|
|
</note>
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.search.lucene.index-creation.documents-and-fields">
|
|
|
<title>Objet "Document" and "Field"</title>
|
|
|
|
|
|
- <para><classname>Zend_Search_Lucene</classname> travaille avec des documents comme objets de base pour
|
|
|
- l'indexation. Un document est divisé en champs possédant un nom et du contenu dans lequel on pourra
|
|
|
- chercher.</para>
|
|
|
-
|
|
|
- <para>Un document est représenté par la classe <classname>Zend_Search_Lucene_Document</classname>. Les objets de cette
|
|
|
- classe contiennent des instances de <classname>Zend_Search_Lucene_Field</classname> qui représentent les champs du
|
|
|
- document.</para>
|
|
|
-
|
|
|
- <para>Il est important de noter que n'importe quelle information peut être ajoutée à l'index. Des informations
|
|
|
- propres à l'application ou des métadonnées peuvent être stockées dans le document, puis récupérées durant la
|
|
|
- recherche.</para>
|
|
|
-
|
|
|
- <para>Il est de la responsabilité de votre application de gérer l'indexation. Cela signifie que les données
|
|
|
- peuvent être indexées depuis n'importe quelle source accessible par votre application. Par exemple, elles
|
|
|
- peuvent provenir du système de fichier, d'une base de données, d'un formulaire HTML, etc.</para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Field</classname> fournit plusieurs méthodes statiques pour créer des champs
|
|
|
- avec différentes caractéristiques :</para>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Search_Lucene</classname> travaille avec des documents comme
|
|
|
+ objets de base pour l'indexation. Un document est divisé en champs possédant un nom et
|
|
|
+ du contenu dans lequel on pourra chercher.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Un document est représenté par la classe
|
|
|
+ <classname>Zend_Search_Lucene_Document</classname>. Les objets de cette classe
|
|
|
+ contiennent des instances de <classname>Zend_Search_Lucene_Field</classname> qui
|
|
|
+ représentent les champs du document.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Il est important de noter que n'importe quelle information peut être ajoutée à
|
|
|
+ l'index. Des informations propres à l'application ou des métadonnées peuvent être
|
|
|
+ stockées dans le document, puis récupérées durant la recherche.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Il est de la responsabilité de votre application de gérer l'indexation. Cela
|
|
|
+ signifie que les données peuvent être indexées depuis n'importe quelle source accessible
|
|
|
+ par votre application. Par exemple, elles peuvent provenir du système de fichier, d'une
|
|
|
+ base de données, d'un formulaire HTML, etc.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Field</classname> fournit plusieurs
|
|
|
+ méthodes statiques pour créer des champs avec différentes caractéristiques :
|
|
|
+ </para>
|
|
|
|
|
|
<programlisting role="php"><![CDATA[
|
|
|
$doc = new Zend_Search_Lucene_Document();
|
|
|
@@ -88,40 +115,58 @@ $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
|
|
|
'My document content'));
|
|
|
]]></programlisting>
|
|
|
|
|
|
- <para>Chacune de ces méthodes (à l'exception de <classname>Zend_Search_Lucene_Field::Binary()</classname>) possède un
|
|
|
- paramètre optionnel <code>$encoding</code> servant à spécifier l'encodage de la chaîne entrée.</para>
|
|
|
-
|
|
|
- <para>L'encodage peut différer par document, voire par champ au sein d'un même document : <programlisting
|
|
|
- role="php"><![CDATA[
|
|
|
-$doc = new Zend_Search_Lucene_Document();
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::Text('title',
|
|
|
- $title,
|
|
|
- 'iso-8859-1'));
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
|
|
|
- $contents,
|
|
|
- 'utf-8'));
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>Si le paramètre d'encodage est omis, la locale courante est alors utilisée pour le déterminer à
|
|
|
- l'exécution. Par exemple : <programlisting role="php"><![CDATA[
|
|
|
-setlocale(LC_ALL, 'de_DE.iso-8859-1');
|
|
|
-...
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $contents));
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>Les champs sont toujours stockés et retournés depuis l'index en UTF-8. Toute conversion requise vers UTF-8
|
|
|
- est effectuée automatiquement.</para>
|
|
|
-
|
|
|
- <para>Les analyseurs de texte (<link linkend="zend.search.lucene.extending.analysis">voir plus bas</link>)
|
|
|
- peuvent également convertir du texte vers d'autres encodages. Actuellement, l'analyseur par défaut convertit le
|
|
|
- texte au format "ASCII/TRANSLIT". Soyez prudent, cependant; cette conversion peut déprendre de la locale.</para>
|
|
|
-
|
|
|
- <para>Le nom des champs est défini par vous dans la méthode <code>addField()</code>.</para>
|
|
|
-
|
|
|
- <para>Java Lucene utilise le champ "contents" comme champ de recherche par défaut.
|
|
|
- <classname>Zend_Search_Lucene</classname> cherche par défaut dans tous les champs. Cela dit, ce comportement est
|
|
|
- configurable. Consultez le chapitre <link linkend="zend.search.lucene.query-language.fields">"Champ de recherche
|
|
|
- par défaut"</link> pour plus de détails.</para>
|
|
|
+ <para>
|
|
|
+ Chacune de ces méthodes (à l'exception de
|
|
|
+ <classname>Zend_Search_Lucene_Field::Binary()</classname>) possède un paramètre
|
|
|
+ optionnel <code>$encoding</code> servant à spécifier l'encodage de la chaîne
|
|
|
+ entrée.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ L'encodage peut différer par document, voire par champ au sein d'un même document
|
|
|
+ : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = new Zend_Search_Lucene_Document();
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::Text('title',
|
|
|
+ $title,
|
|
|
+ 'iso-8859-1'));
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
|
|
|
+ $contents,
|
|
|
+ 'utf-8'));
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Si le paramètre d'encodage est omis, la locale courante est alors utilisée pour le
|
|
|
+ déterminer à l'exécution. Par exemple : <programlisting role="php"><![CDATA[
|
|
|
+ setlocale(LC_ALL, 'de_DE.iso-8859-1');
|
|
|
+ ...
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $contents));
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les champs sont toujours stockés et retournés depuis l'index en UTF-8. Toute
|
|
|
+ conversion requise vers UTF-8 est effectuée automatiquement.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les analyseurs de texte (<link
|
|
|
+ linkend="zend.search.lucene.extending.analysis">voir plus bas</link>) peuvent également
|
|
|
+ convertir du texte vers d'autres encodages. Actuellement, l'analyseur par défaut
|
|
|
+ convertit le texte au format "ASCII/TRANSLIT". Soyez prudent, cependant; cette
|
|
|
+ conversion peut déprendre de la locale.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Le nom des champs est défini par vous dans la méthode
|
|
|
+ <code>addField()</code>.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Java Lucene utilise le champ "contents" comme champ de recherche par défaut.
|
|
|
+ <classname>Zend_Search_Lucene</classname> cherche par défaut dans tous les champs. Cela
|
|
|
+ dit, ce comportement est configurable. Consultez le chapitre <link
|
|
|
+ linkend="zend.search.lucene.query-language.fields">"Champ de recherche par
|
|
|
+ défaut"</link> pour plus de détails.
|
|
|
+ </para>
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.search.lucene.index-creation.understanding-field-types">
|
|
|
@@ -129,41 +174,57 @@ $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $contents));
|
|
|
|
|
|
<itemizedlist>
|
|
|
<listitem>
|
|
|
- <para>Les champs <code>Keyword</code> (mot-clé) sont stockés ET indexés. Cela signifie qu'ils peuvent
|
|
|
- être aussi bien cherchés dans l'index qu'affichés dans les résultats de la recherche. Ils ne sont pas
|
|
|
- divisés en plusieurs mots par "tokenization". Les champs d'énumérations dans une base de donnée se
|
|
|
- transposent généralement assez bien en champs de type Keyword dans
|
|
|
- <classname>Zend_Search_Lucene</classname>.</para>
|
|
|
+ <para>
|
|
|
+ Les champs <code>Keyword</code> (mot-clé) sont stockés ET indexés. Cela
|
|
|
+ signifie qu'ils peuvent être aussi bien cherchés dans l'index qu'affichés dans
|
|
|
+ les résultats de la recherche. Ils ne sont pas divisés en plusieurs mots par
|
|
|
+ "tokenization". Les champs d'énumérations dans une base de donnée se transposent
|
|
|
+ généralement assez bien en champs de type Keyword dans
|
|
|
+ <classname>Zend_Search_Lucene</classname>.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
- <para>Les champs <code>UnIndexed</code> (non-indexé) ne peuvent pas être utilisés dans la recherche. En
|
|
|
- revanche, ils peuvent être retournés dans les résultats. Des timestamps de base de données, des clés
|
|
|
- primaires, des chemins de fichiers et d'autres identifiants externes sont autant de bons exemples
|
|
|
- d'utilisation des champs de type UnIndexed.</para>
|
|
|
+ <para>
|
|
|
+ Les champs <code>UnIndexed</code> (non-indexé) ne peuvent pas être
|
|
|
+ utilisés dans la recherche. En revanche, ils peuvent être retournés dans les
|
|
|
+ résultats. Des timestamps de base de données, des clés primaires, des chemins de
|
|
|
+ fichiers et d'autres identifiants externes sont autant de bons exemples
|
|
|
+ d'utilisation des champs de type UnIndexed.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
- <para>Les champs <code>Binary</code> (binaire) ne sont ni "tokenizés", ni indexés, mais ils sont stockés
|
|
|
- dans le but d'être retournés dans les résultats de recherche. Ils peuvent être utilisés pour stocker
|
|
|
- n'importe quelle donnée encodée en chaîne binaire, telle qu'une icône par exemple.</para>
|
|
|
+ <para>
|
|
|
+ Les champs <code>Binary</code> (binaire) ne sont ni "tokenizés", ni
|
|
|
+ indexés, mais ils sont stockés dans le but d'être retournés dans les résultats
|
|
|
+ de recherche. Ils peuvent être utilisés pour stocker n'importe quelle donnée
|
|
|
+ encodée en chaîne binaire, telle qu'une icône par exemple.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
- <para>Les champs <code>Text</code> (texte) sont stockés, indexés et "tokenizés". Les champs de type Text
|
|
|
- sont appropriés pour stocker des informations telles que sujets et titres sur lesquels on veut pouvoir
|
|
|
- effectuer des recherches, mais également les utiliser dans l'affichage des résultats.</para>
|
|
|
+ <para>
|
|
|
+ Les champs <code>Text</code> (texte) sont stockés, indexés et "tokenizés".
|
|
|
+ Les champs de type Text sont appropriés pour stocker des informations telles que
|
|
|
+ sujets et titres sur lesquels on veut pouvoir effectuer des recherches, mais
|
|
|
+ également les utiliser dans l'affichage des résultats.
|
|
|
+ </para>
|
|
|
</listitem>
|
|
|
|
|
|
<listitem>
|
|
|
- <para>Les champs <code>UnStored</code> sont "tokenizés" et indexés, mais pas stockés dans l'index. Il
|
|
|
- est recommandé d'utiliser ce type de champ pour indexer les textes conséquents. Stocker des données
|
|
|
- implique la création d'index plus volumineux sur le disque. Donc si vous disposez de données sur
|
|
|
- lesquelles vous voulez uniquement effectuer des recherches sans nécessairement afficher ces données dans
|
|
|
- les résultats, utilisez un champ de type UnStored. Le type UnStored est pratique lorsque vous utilisez
|
|
|
- un index Zend_Search_Lucene en combinaison avec une base de données relationnelle. Vous pouvez indexer
|
|
|
- des gros champs de données dans des champs de type UnStored et les extraire de la base de données
|
|
|
- relationnelle en utilisant un champ séparé en tant qu'identifiant.</para>
|
|
|
+ <para>
|
|
|
+ Les champs <code>UnStored</code> sont "tokenizés" et indexés, mais pas
|
|
|
+ stockés dans l'index. Il est recommandé d'utiliser ce type de champ pour indexer
|
|
|
+ les textes conséquents. Stocker des données implique la création d'index plus
|
|
|
+ volumineux sur le disque. Donc si vous disposez de données sur lesquelles vous
|
|
|
+ voulez uniquement effectuer des recherches sans nécessairement afficher ces
|
|
|
+ données dans les résultats, utilisez un champ de type UnStored. Le type UnStored
|
|
|
+ est pratique lorsque vous utilisez un index Zend_Search_Lucene en combinaison
|
|
|
+ avec une base de données relationnelle. Vous pouvez indexer des gros champs de
|
|
|
+ données dans des champs de type UnStored et les extraire de la base de données
|
|
|
+ relationnelle en utilisant un champ séparé en tant qu'identifiant.
|
|
|
+ </para>
|
|
|
|
|
|
<table id="zend.search.lucene.index-creation.understanding-field-types.table">
|
|
|
<title>Les types Zend_Search_Lucene_Field</title>
|
|
|
@@ -253,85 +314,128 @@ $doc->addField(Zend_Search_Lucene_Field::UnStored('contents', $contents));
|
|
|
<sect2 id="zend.search.lucene.index-creation.html-documents">
|
|
|
<title>Documents HTML</title>
|
|
|
|
|
|
- <para><classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse HTML. Les documents peuvent être créés
|
|
|
- directement à d'un fichier ou d'une chaîne HTML : <programlisting role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Html::loadHTMLFile($filename);
|
|
|
-$index->addDocument($doc);
|
|
|
-...
|
|
|
-$doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Html</classname> utilise les méthodes
|
|
|
- <code>DOMDocument::loadHTML()</code> et <code>DOMDocument::loadHTMLFile()</code> pour analyser la source HTML,
|
|
|
- ainsi il n'est pas nécessaire que le HTML soit bien formé ou au format XHTML. Par contre, ces méthodes prennent
|
|
|
- en compte l'encodage spécifié dans la balise méta "http-equiv".</para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Html</classname> reconnaît le titre d'une page HTML, son corps
|
|
|
- ("body"), ainsi que les métadonnées de son entête.</para>
|
|
|
-
|
|
|
- <para>Le champ "title" correspond au contenu de la balise /html/head/title. Il est stocké dans l'index,
|
|
|
- "tokenizé" et disponible pour la recherche.</para>
|
|
|
-
|
|
|
- <para>Le champ "body" correspond au contenu de la balise "body" du fichier ou de la chaîne HTML. Il ne prend pas
|
|
|
- en compte les scripts, les commentaires ou les attributs.</para>
|
|
|
-
|
|
|
- <para>Les méthodes <code>loadHTML()</code> et <code>loadHTMLFile()</code> de la classe
|
|
|
- <classname>Zend_Search_Lucene_Document_Html</classname> possèdent également un deuxième argument optionnel. Si sa valeur
|
|
|
- est true, le body sera alors stocké dans l'index et pourra être retourné dans les résultats de recherche. Par
|
|
|
- défaut, le body est "tokenizé", indexé, mais pas stocké.</para>
|
|
|
-
|
|
|
- <para>Les autres métadonnées génèrent des champs additionnels dans le document. Le champ "name" prend sa valeur
|
|
|
- dans l'attribut "name" de la métadonnées. Le champ "value" prend sa valeur dans l'attribut "content" de la
|
|
|
- métadonnées. Ces deux champs sont "tokenizés", indexés et stockés. Ainsi les documents peuvent être cherchés à
|
|
|
- travers leurs métadonnées (p. ex. par mots-clés).</para>
|
|
|
-
|
|
|
- <para>Les documents analysés peuvent être enrichis par le programmeur avec d'autres champs : <programlisting
|
|
|
- role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnIndexed('created',
|
|
|
- time()));
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnIndexed('updated',
|
|
|
- time()));
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::Text('annotation',
|
|
|
- 'Document annotation text'));
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>Les liens des documents ne sont pas inclus dans le document généré, mais ils peuvent être récupérés avec
|
|
|
- les méthodes <classname>Zend_Search_Lucene_Document_Html::getLinks()</classname> et
|
|
|
- <classname>Zend_Search_Lucene_Document_Html::getHeaderLinks()</classname> : <programlisting role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
-$linksArray = $doc->getLinks();
|
|
|
-$headerLinksArray = $doc->getHeaderLinks();
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>A partir de Zend Framework 1.6, il est également possible d'exclure les balises "link" dont l'attribut
|
|
|
- <code>rel</code> vaut <code>'nofollow'</code>. Utilisez
|
|
|
- <classname>Zend_Search_Lucene_Document_Html::setExcludeNoFollowLinks($true)</classname> pour activer cette option.</para>
|
|
|
-
|
|
|
- <para>La méthode <classname>Zend_Search_Lucene_Document_Html::getExcludeNoFollowLinks()</classname> retourne la valeur
|
|
|
- courante du flag "Exclude nofollow links".</para>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse HTML.
|
|
|
+ Les documents peuvent être créés directement à d'un fichier ou d'une chaîne HTML :
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Html::loadHTMLFile($filename);
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ...
|
|
|
+ $doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Html</classname> utilise les
|
|
|
+ méthodes <code>DOMDocument::loadHTML()</code> et
|
|
|
+ <code>DOMDocument::loadHTMLFile()</code> pour analyser la source HTML, ainsi il n'est
|
|
|
+ pas nécessaire que le HTML soit bien formé ou au format XHTML. Par contre, ces méthodes
|
|
|
+ prennent en compte l'encodage spécifié dans la balise méta "http-equiv".
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Html</classname> reconnaît le
|
|
|
+ titre d'une page HTML, son corps ("body"), ainsi que les métadonnées de son
|
|
|
+ entête.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Le champ "title" correspond au contenu de la balise /html/head/title. Il est
|
|
|
+ stocké dans l'index, "tokenizé" et disponible pour la recherche.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Le champ "body" correspond au contenu de la balise "body" du fichier ou de la
|
|
|
+ chaîne HTML. Il ne prend pas en compte les scripts, les commentaires ou les
|
|
|
+ attributs.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les méthodes <code>loadHTML()</code> et <code>loadHTMLFile()</code> de la classe
|
|
|
+ <classname>Zend_Search_Lucene_Document_Html</classname> possèdent également un deuxième
|
|
|
+ argument optionnel. Si sa valeur est true, le body sera alors stocké dans l'index et
|
|
|
+ pourra être retourné dans les résultats de recherche. Par défaut, le body est
|
|
|
+ "tokenizé", indexé, mais pas stocké.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ The third parameter of <code>loadHTML()</code> and <code>loadHTMLFile()</code> methods
|
|
|
+ optionally specifies source HTML document encoding. It's used if encoding is not
|
|
|
+ specified using Content-type HTTP-EQUIV meta tag.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les autres métadonnées génèrent des champs additionnels dans le document. Le champ
|
|
|
+ "name" prend sa valeur dans l'attribut "name" de la métadonnées. Le champ "value" prend
|
|
|
+ sa valeur dans l'attribut "content" de la métadonnées. Ces deux champs sont "tokenizés",
|
|
|
+ indexés et stockés. Ainsi les documents peuvent être cherchés à travers leurs
|
|
|
+ métadonnées (p. ex. par mots-clés).
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les documents analysés peuvent être enrichis par le programmeur avec d'autres
|
|
|
+ champs : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('created',
|
|
|
+ time()));
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed('updated',
|
|
|
+ time()));
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::Text('annotation',
|
|
|
+ 'Document annotation text'));
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les liens des documents ne sont pas inclus dans le document généré, mais ils
|
|
|
+ peuvent être récupérés avec les méthodes
|
|
|
+ <classname>Zend_Search_Lucene_Document_Html::getLinks()</classname> et
|
|
|
+ <classname>Zend_Search_Lucene_Document_Html::getHeaderLinks()</classname> :
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Html::loadHTML($htmlString);
|
|
|
+ $linksArray = $doc->getLinks();
|
|
|
+ $headerLinksArray = $doc->getHeaderLinks();
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ A partir de Zend Framework 1.6, il est également possible d'exclure les balises
|
|
|
+ "link" dont l'attribut <code>rel</code> vaut <code>'nofollow'</code>. Utilisez
|
|
|
+ <classname>Zend_Search_Lucene_Document_Html::setExcludeNoFollowLinks($true)</classname>
|
|
|
+ pour activer cette option.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La méthode
|
|
|
+ <classname>Zend_Search_Lucene_Document_Html::getExcludeNoFollowLinks()</classname>
|
|
|
+ retourne la valeur courante du flag "Exclude nofollow links".
|
|
|
+ </para>
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.search.lucene.index-creation.docx-documents">
|
|
|
<title>Documents Word 2007</title>
|
|
|
|
|
|
- <para><classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse de documents Word 2007. On peut créer
|
|
|
- directement un document depuis un fichier Word 2007 : <programlisting role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($filename);
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Docx</classname> utilise la classe <code>ZipArchive</code> et les
|
|
|
- méthodes de <code>simplexml</code> pour analyser le document source. Si la classe <code>ZipArchive</code> (issue
|
|
|
- du module php_zip) n'est pas disponible, <classname>Zend_Search_Lucene_Document_Docx</classname> ne sera pas non plus
|
|
|
- disponible dans le Zend Framework.</para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Docx</classname> reconnaît les métadonnées et le texte des
|
|
|
- documents. Les métadonnées sont constituées, suivant le contenu du document, du nom de fichier (filename), sujet
|
|
|
- (subject), créateur (creator), mots-clés (keywords), description, auteur de la dernière modification
|
|
|
- (lastModifiedBy), révision (revision), date de modification (modified), date de création (created).</para>
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse de
|
|
|
+ documents Word 2007. On peut créer directement un document depuis un fichier Word 2007 :
|
|
|
+ <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($filename);
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Docx</classname> utilise la
|
|
|
+ classe <code>ZipArchive</code> et les méthodes de <code>simplexml</code> pour analyser
|
|
|
+ le document source. Si la classe <code>ZipArchive</code> (issue du module php_zip) n'est
|
|
|
+ pas disponible, <classname>Zend_Search_Lucene_Document_Docx</classname> ne sera pas non
|
|
|
+ plus disponible dans le Zend Framework.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Docx</classname> reconnaît les
|
|
|
+ métadonnées et le texte des documents. Les métadonnées sont constituées, suivant le
|
|
|
+ contenu du document, du nom de fichier (filename), sujet (subject), créateur (creator),
|
|
|
+ mots-clés (keywords), description, auteur de la dernière modification (lastModifiedBy),
|
|
|
+ révision (revision), date de modification (modified), date de création (created).
|
|
|
+ </para>
|
|
|
|
|
|
<para>Le champ "filename" correspond au nom du fichier Word 2007.</para>
|
|
|
|
|
|
@@ -345,7 +449,10 @@ $index->addDocument($doc);
|
|
|
|
|
|
<para>Le champ "description" correspond à la description du document.</para>
|
|
|
|
|
|
- <para>Le champ "lastModifiedBy" correspond au nom de l'utilisateur qui a modifié en dernier le document.</para>
|
|
|
+ <para>
|
|
|
+ Le champ "lastModifiedBy" correspond au nom de l'utilisateur qui a modifié en
|
|
|
+ dernier le document.
|
|
|
+ </para>
|
|
|
|
|
|
<para>Le champ "revision" correspond au numéro actuel de la version du document.</para>
|
|
|
|
|
|
@@ -353,47 +460,61 @@ $index->addDocument($doc);
|
|
|
|
|
|
<para>Le champ "created" contient la date de création du document.</para>
|
|
|
|
|
|
- <para>Le champ "body" contient le véritable contenu du document Word 2007. Il n'inclut que le texte normal. Les
|
|
|
- commentaires et révisions ne sont pas inclus.</para>
|
|
|
-
|
|
|
- <para>La méthode <code>loadDocxFile()</code> de la classe <classname>Zend_Search_Lucene_Document_Docx</classname> possède
|
|
|
- également un second argument optionnel. S'il est défini à <code>true</code>, le champ "body" sera alors
|
|
|
- également stocké dans l'index et pourra être affiché dans les résultats de recherche. Par défaut, le champ
|
|
|
- "body" est "tokenizé" et indexé, mais pas stocké.</para>
|
|
|
-
|
|
|
- <para>Les documents parsés peuvent être étendus par le programmeur avec d'autres champs : <programlisting
|
|
|
- role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($filename);
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnIndexed(
|
|
|
- 'indexTime',
|
|
|
- time())
|
|
|
-);
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::Text(
|
|
|
- 'annotation',
|
|
|
- 'Document annotation text')
|
|
|
-);
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
- </sect2>
|
|
|
-
|
|
|
- <sect2 id="zend.search.lucene.index-creation.pptx-documents">
|
|
|
- <title>Document Powerpoint 2007</title>
|
|
|
-
|
|
|
- <para><classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse de documents Powerpoint 2007. On peut
|
|
|
- créer directement un document depuis un fichier Powerpoint 2007 : <programlisting role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Pptx::loadPptxFile($filename);
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Pptx</classname> utilise la classe <code>ZipArchive</code> et les
|
|
|
- méthodes de <code>simplexml</code> pour analyser le document source. Si la classe <code>ZipArchive</code> (issue
|
|
|
- du module php_zip) n'est pas disponible, <classname>Zend_Search_Lucene_Document_Pptx</classname> ne sera pas non plus
|
|
|
- disponible dans le Zend Framework.</para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Pptx</classname> reconnaît les métadonnées et le texte des
|
|
|
- documents. Les métadonnées sont constituées, suivant le contenu du document, du nom de fichier (filename), sujet
|
|
|
- (subject), créateur (creator), mots-clés (keywords), description, auteur de la dernière modification
|
|
|
- (lastModifiedBy), révision (revision), date de modification (modified), date de création (created).</para>
|
|
|
+ <para>
|
|
|
+ Le champ "body" contient le véritable contenu du document Word 2007. Il n'inclut
|
|
|
+ que le texte normal. Les commentaires et révisions ne sont pas inclus.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La méthode <code>loadDocxFile()</code> de la classe
|
|
|
+ <classname>Zend_Search_Lucene_Document_Docx</classname> possède également un second
|
|
|
+ argument optionnel. S'il est défini à <code>true</code>, le champ "body" sera alors
|
|
|
+ également stocké dans l'index et pourra être affiché dans les résultats de recherche.
|
|
|
+ Par défaut, le champ "body" est "tokenizé" et indexé, mais pas stocké.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les documents parsés peuvent être étendus par le programmeur avec d'autres champs
|
|
|
+ : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Docx::loadDocxFile($filename);
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed(
|
|
|
+ 'indexTime',
|
|
|
+ time())
|
|
|
+ );
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::Text(
|
|
|
+ 'annotation',
|
|
|
+ 'Document annotation text')
|
|
|
+ );
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.search.lucene.index-creation.pptx-documents">
|
|
|
+ <title>Document Powerpoint 2007</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse de
|
|
|
+ documents Powerpoint 2007. On peut créer directement un document depuis un fichier
|
|
|
+ Powerpoint 2007 : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Pptx::loadPptxFile($filename);
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Pptx</classname> utilise la
|
|
|
+ classe <code>ZipArchive</code> et les méthodes de <code>simplexml</code> pour analyser
|
|
|
+ le document source. Si la classe <code>ZipArchive</code> (issue du module php_zip) n'est
|
|
|
+ pas disponible, <classname>Zend_Search_Lucene_Document_Pptx</classname> ne sera pas non
|
|
|
+ plus disponible dans le Zend Framework.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Pptx</classname> reconnaît les
|
|
|
+ métadonnées et le texte des documents. Les métadonnées sont constituées, suivant le
|
|
|
+ contenu du document, du nom de fichier (filename), sujet (subject), créateur (creator),
|
|
|
+ mots-clés (keywords), description, auteur de la dernière modification (lastModifiedBy),
|
|
|
+ révision (revision), date de modification (modified), date de création (created).
|
|
|
+ </para>
|
|
|
|
|
|
<para>Le champ "filename" correspond au nom du fichier Powerpoint 2007.</para>
|
|
|
|
|
|
@@ -407,7 +528,10 @@ $index->addDocument($doc);
|
|
|
|
|
|
<para>Le champ "description" correspond à la description du document.</para>
|
|
|
|
|
|
- <para>Le champ "lastModifiedBy" correspond au nom de l'utilisateur qui a modifié en dernier le document.</para>
|
|
|
+ <para>
|
|
|
+ Le champ "lastModifiedBy" correspond au nom de l'utilisateur qui a modifié en
|
|
|
+ dernier le document.
|
|
|
+ </para>
|
|
|
|
|
|
<para>Le champ "revision" correspond au numéro actuel de la version du document.</para>
|
|
|
|
|
|
@@ -415,45 +539,59 @@ $index->addDocument($doc);
|
|
|
|
|
|
<para>Le champ "created" contient la date de création du document.</para>
|
|
|
|
|
|
- <para>Le champ "body" contient le véritable contenu de toutes les slides, ainsi que les notes dans le document
|
|
|
- Powerpoint 2007.</para>
|
|
|
-
|
|
|
- <para>La méthode <code>loadPptxFile()</code> de la classe <classname>Zend_Search_Lucene_Document_Pptx</classname> possède
|
|
|
- également un second argument optionnel. S'il est défini à true, le champ "body" sera alors également stocké dans
|
|
|
- l'index et pourra être affiché dans les résultats de recherche. Par défaut, le champ "body" est "tokenizé" et
|
|
|
- indexé, mais pas stocké.</para>
|
|
|
-
|
|
|
- <para>Les documents analysés peuvent être étendus par le programmeur avec d'autres champs : <programlisting
|
|
|
- role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Pptx::loadPptxFile($filename);
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnIndexed(
|
|
|
- 'indexTime',
|
|
|
- time()));
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::Text(
|
|
|
- 'annotation',
|
|
|
- 'Document annotation text'));
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
- </sect2>
|
|
|
-
|
|
|
- <sect2 id="zend.search.lucene.index-creation.xlsx-documents">
|
|
|
- <title>Documents Excel 2007</title>
|
|
|
-
|
|
|
- <para><classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse de documents Excel 2007. On peut créer
|
|
|
- directement un document depuis un fichier Excel 2007 : <programlisting role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($filename);
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Xlsx</classname> utilise la classe <code>ZipArchive</code> et les
|
|
|
- méthodes de <code>simplexml</code> pour analyser le document source. Si la classe <code>ZipArchive</code> (issue
|
|
|
- du module php_zip) n'est pas disponible, <classname>Zend_Search_Lucene_Document_Xlsx</classname> ne sera pas non plus
|
|
|
- disponible dans le Zend Framework.</para>
|
|
|
-
|
|
|
- <para>La classe <classname>Zend_Search_Lucene_Document_Xlsx</classname> reconnaît les métadonnées et le texte des
|
|
|
- documents. Les métadonnées sont constituées, suivant le contenu du document, du nom de fichier (filename), sujet
|
|
|
- (subject), créateur (creator), mots-clés (keywords), description, auteur de la dernière modification
|
|
|
- (lastModifiedBy), révision (revision), date de modification (modified), date de création (created).</para>
|
|
|
+ <para>
|
|
|
+ Le champ "body" contient le véritable contenu de toutes les slides, ainsi que les
|
|
|
+ notes dans le document Powerpoint 2007.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La méthode <code>loadPptxFile()</code> de la classe
|
|
|
+ <classname>Zend_Search_Lucene_Document_Pptx</classname> possède également un second
|
|
|
+ argument optionnel. S'il est défini à true, le champ "body" sera alors également stocké
|
|
|
+ dans l'index et pourra être affiché dans les résultats de recherche. Par défaut, le
|
|
|
+ champ "body" est "tokenizé" et indexé, mais pas stocké.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les documents analysés peuvent être étendus par le programmeur avec d'autres
|
|
|
+ champs : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Pptx::loadPptxFile($filename);
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed(
|
|
|
+ 'indexTime',
|
|
|
+ time()));
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::Text(
|
|
|
+ 'annotation',
|
|
|
+ 'Document annotation text'));
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+ </sect2>
|
|
|
+
|
|
|
+ <sect2 id="zend.search.lucene.index-creation.xlsx-documents">
|
|
|
+ <title>Documents Excel 2007</title>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ <classname>Zend_Search_Lucene</classname> offre une fonctionnalité d'analyse de
|
|
|
+ documents Excel 2007. On peut créer directement un document depuis un fichier Excel 2007
|
|
|
+ : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($filename);
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Xlsx</classname> utilise la
|
|
|
+ classe <code>ZipArchive</code> et les méthodes de <code>simplexml</code> pour analyser
|
|
|
+ le document source. Si la classe <code>ZipArchive</code> (issue du module php_zip) n'est
|
|
|
+ pas disponible, <classname>Zend_Search_Lucene_Document_Xlsx</classname> ne sera pas non
|
|
|
+ plus disponible dans le Zend Framework.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La classe <classname>Zend_Search_Lucene_Document_Xlsx</classname> reconnaît les
|
|
|
+ métadonnées et le texte des documents. Les métadonnées sont constituées, suivant le
|
|
|
+ contenu du document, du nom de fichier (filename), sujet (subject), créateur (creator),
|
|
|
+ mots-clés (keywords), description, auteur de la dernière modification (lastModifiedBy),
|
|
|
+ révision (revision), date de modification (modified), date de création (created).
|
|
|
+ </para>
|
|
|
|
|
|
<para>Le champ "filename" correspond au nom du fichier Excel 2007.</para>
|
|
|
|
|
|
@@ -467,7 +605,10 @@ $index->addDocument($doc);
|
|
|
|
|
|
<para>Le champ "description" correspond à la description du document.</para>
|
|
|
|
|
|
- <para>Le champ "lastModifiedBy" correspond au nom de l'utilisateur qui a modifié en dernier le document.</para>
|
|
|
+ <para>
|
|
|
+ Le champ "lastModifiedBy" correspond au nom de l'utilisateur qui a modifié en
|
|
|
+ dernier le document.
|
|
|
+ </para>
|
|
|
|
|
|
<para>Le champ "revision" correspond au numéro actuel de la version du document.</para>
|
|
|
|
|
|
@@ -475,24 +616,30 @@ $index->addDocument($doc);
|
|
|
|
|
|
<para>Le champ "created" contient la date de création du document.</para>
|
|
|
|
|
|
- <para>Le champ "body" contient le véritable contenu de toutes les cellules de toutes les feuilles de calcul du
|
|
|
- document Excel 2007.</para>
|
|
|
-
|
|
|
- <para>La méthode <code>loadXlsxFile()</code> de la classe <classname>Zend_Search_Lucene_Document_Xlsx</classname> possède
|
|
|
- également un second argument optionnel. S'il est défini à true, le champ "body" sera alors également stocké dans
|
|
|
- l'index et pourra être affiché dans les résultats de recherche. Par défaut, le champ "body" est "tokenizé" et
|
|
|
- indexé, mais pas stocké.</para>
|
|
|
-
|
|
|
- <para>Les documents analysés peuvent être étendus par le programmeur avec d'autres champs : <programlisting
|
|
|
- role="php"><![CDATA[
|
|
|
-$doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($filename);
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::UnIndexed(
|
|
|
- 'indexTime',
|
|
|
- time()));
|
|
|
-$doc->addField(Zend_Search_Lucene_Field::Text(
|
|
|
- 'annotation',
|
|
|
- 'Document annotation text'));
|
|
|
-$index->addDocument($doc);
|
|
|
-]]></programlisting></para>
|
|
|
- </sect2>
|
|
|
-</sect1>
|
|
|
+ <para>
|
|
|
+ Le champ "body" contient le véritable contenu de toutes les cellules de toutes les
|
|
|
+ feuilles de calcul du document Excel 2007.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ La méthode <code>loadXlsxFile()</code> de la classe
|
|
|
+ <classname>Zend_Search_Lucene_Document_Xlsx</classname> possède également un second
|
|
|
+ argument optionnel. S'il est défini à true, le champ "body" sera alors également stocké
|
|
|
+ dans l'index et pourra être affiché dans les résultats de recherche. Par défaut, le
|
|
|
+ champ "body" est "tokenizé" et indexé, mais pas stocké.
|
|
|
+ </para>
|
|
|
+
|
|
|
+ <para>
|
|
|
+ Les documents analysés peuvent être étendus par le programmeur avec d'autres
|
|
|
+ champs : <programlisting role="php"><![CDATA[
|
|
|
+ $doc = Zend_Search_Lucene_Document_Xlsx::loadXlsxFile($filename);
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::UnIndexed(
|
|
|
+ 'indexTime',
|
|
|
+ time()));
|
|
|
+ $doc->addField(Zend_Search_Lucene_Field::Text(
|
|
|
+ 'annotation',
|
|
|
+ 'Document annotation text'));
|
|
|
+ $index->addDocument($doc);
|
|
|
+ ]]></programlisting></para>
|
|
|
+ </sect2>
|
|
|
+ </sect1>
|