| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="zend.search.lucene.overview">
- <title>Vue d'ensemble</title>
- <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 <acronym>PHP</acronym> 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 <acronym>PHP</acronym>.
- <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, joker (wildcard),
- 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>
- <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>
- </note>
- </sect2>
- <sect2 id="zend.search.lucene.index-creation.documents-and-fields">
- <title>Objet "Document" et "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>
- <programlisting language="php"><![CDATA[
- $doc = new Zend_Search_Lucene_Document();
- // Le champ n'est pas "tokenizé", mais il est indexé et stocké dans l'index.
- // Les champs stockés peuvent être récupéré depuis l'index.
- $doc->addField(Zend_Search_Lucene_Field::Keyword('doctype',
- 'autogenerated'));
- // Le champ n'est ni "tokenizé", ni indexé, mais il est stocké dans l'index.
- $doc->addField(Zend_Search_Lucene_Field::UnIndexed('created',
- time()));
- // Un champ chaîne binaire qui n'est ni "tokenizé", ni indexé, mais
- // stocké dans l'index.
- $doc->addField(Zend_Search_Lucene_Field::Binary('icon',
- $iconData));
- // Un champ "tokenizé", indexé et stocké dans l'index.
- $doc->addField(Zend_Search_Lucene_Field::Text('annotation',
- 'Document annotation text'));
- // Un champ "tokenizé" et indexé, mais pas stocké dans l'index.
- $doc->addField(Zend_Search_Lucene_Field::UnStored('contents',
- 'My document content'));
- ]]></programlisting>
- <para>
- Chacune de ces méthodes (à l'exception de
- <methodname>Zend_Search_Lucene_Field::Binary()</methodname>) possède un paramètre
- optionnel <varname>$encoding</varname> 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 language="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 language="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
- <methodname>addField()</methodname>.
- </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">
- <title>Comprendre les types de champs</title>
- <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>
- </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>
- </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>
- </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>
- </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>
- <table id="zend.search.lucene.index-creation.understanding-field-types.table">
- <title>Les types Zend_Search_Lucene_Field</title>
- <tgroup cols="5">
- <thead>
- <row>
- <entry>Type de champ</entry>
- <entry>Stocké</entry>
- <entry>Indexé</entry>
- <entry>"Tokenizé"</entry>
- <entry>Binaire</entry>
- </row>
- </thead>
- <tbody>
- <row>
- <entry>Keyword</entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry>Non</entry>
- <entry>Non</entry>
- </row>
- <row>
- <entry>UnIndexed</entry>
- <entry>Oui</entry>
- <entry>Non</entry>
- <entry>Non</entry>
- <entry>Non</entry>
- </row>
- <row>
- <entry>Binary</entry>
- <entry>Oui</entry>
- <entry>Non</entry>
- <entry>Non</entry>
- <entry>Oui</entry>
- </row>
- <row>
- <entry>Text</entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry>Non</entry>
- </row>
- <row>
- <entry>UnStored</entry>
- <entry>Non</entry>
- <entry>Oui</entry>
- <entry>Oui</entry>
- <entry>Non</entry>
- </row>
- </tbody>
- </tgroup>
- </table>
- </listitem>
- </itemizedlist>
- </sect2>
- <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 language="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 <methodname>DOMDocument::loadHTML()</methodname> et
- <methodname>DOMDocument::loadHTMLFile()</methodname> pour analyser la source HTML, ainsi il n'est
- pas nécessaire que le HTML soit bien formé ou au format <acronym>XHTML</acronym>. 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 <methodname>loadHTML()</methodname> et <methodname>loadHTMLFile()</methodname> 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 <methodname>loadHTML()</methodname> and <methodname>loadHTMLFile()</methodname> 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 language="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
- <methodname>Zend_Search_Lucene_Document_Html::getLinks()</methodname> et
- <methodname>Zend_Search_Lucene_Document_Html::getHeaderLinks()</methodname> :
- <programlisting language="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
- <methodname>Zend_Search_Lucene_Document_Html::setExcludeNoFollowLinks($true)</methodname>
- pour activer cette option.
- </para>
- <para>
- La méthode
- <methodname>Zend_Search_Lucene_Document_Html::getExcludeNoFollowLinks()</methodname>
- 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 language="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>
- <para>Le champ "title" correspond au titre du document.</para>
- <para>Le champ "subject" correspond au sujet du document.</para>
- <para>Le champ "creator" correspond à l'auteur du document.</para>
- <para>Le champ "keywords" contient les mots-clés du document.</para>
- <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 "revision" correspond au numéro actuel de la version du document.</para>
- <para>Le champ "modified" contient la date de dernière modification du document.</para>
- <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 <methodname>loadDocxFile()</methodname> de la classe
- <classname>Zend_Search_Lucene_Document_Docx</classname> possède également un second
- argument optionnel. S'il est défini à <constant>TRUE</constant>, 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 language="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 language="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>
- <para>Le champ "title" correspond au titre du document.</para>
- <para>Le champ "subject" correspond au sujet du document.</para>
- <para>Le champ "creator" correspond à l'auteur du document.</para>
- <para>Le champ "keywords" contient les mots-clés du document.</para>
- <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 "revision" correspond au numéro actuel de la version du document.</para>
- <para>Le champ "modified" contient la date de dernière modification du document.</para>
- <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 <methodname>loadPptxFile()</methodname> 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 language="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 language="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>
- <para>Le champ "title" correspond au titre du document.</para>
- <para>Le champ "subject" correspond au sujet du document.</para>
- <para>Le champ "creator" correspond à l'auteur du document.</para>
- <para>Le champ "keywords" contient les mots-clés du document.</para>
- <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 "revision" correspond au numéro actuel de la version du document.</para>
- <para>Le champ "modified" contient la date de dernière modification du document.</para>
- <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 <methodname>loadXlsxFile()</methodname> 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 language="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>
|