| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234 |
- <?xml version="1.0" encoding="utf-8"?>
- <!-- EN-Revision: 24249 -->
- <!-- Reviewed: no -->
- <sect1 id="learning.lucene.queries">
- <title>Requêtes supportées</title>
- <para>
- <classname>Zend_Search_Lucene</classname> et Lucene Java supportent un langage de requête
- puissant.
- Il permet de rechercher des termes individuels, des phrases, des ensembles de termes ;
- en utilisant des jokers ou des recherches floues ; en combinant des requêtes à l'aide
- d'opérateurs booléens et ainsi de suite.
- </para>
- <para>
- Une description détaillée du langage de requête peut être trouvé dans la documentation du
- composant <link
- linkend="zend.search.lucene.query-language">
- Zend_Search_Lucene</link>.
- </para>
- <para>
- Ci-dessous, des exemples de quelques requêtes types communes et de stratégies.
- </para>
- <example id="learning.lucene.queries.keyword">
- <title>Effectuer une requête pour un mot seul</title>
- <programlisting language="text"><![CDATA[
- hello
- ]]></programlisting>
- <para>
- Recherche le mot "hello" à travers les champs de tous les documents.
- </para>
- </example>
- <note>
- <title>Champ de recherche par défaut</title>
- <para>
- Note importante ! Lucene Java recherche uniquement dans les champs de "contenu" par
- défaut, mais <classname>Zend_Search_Lucene</classname> recherche à travers
- <emphasis>tous</emphasis> les champs. Ce comportement peut être modifié en utilisant
- la méthode <methodname>Zend_Search_Lucene::setDefaultSearchField($fieldName)</methodname>.
- </para>
- </note>
- <example id="learning.lucene.queries.multiple-words">
- <title>Effectuer une recherche de mots multiples</title>
- <programlisting language="text"><![CDATA[
- hello dolly
- ]]></programlisting>
- <para>
- Recherche deux mots. Les deux mots sont facultatifs, au moins l'un des deux doit être
- présent dans le résultat
- </para>
- </example>
- <example id="learning.lucene.queries.required-words">
- <title>Mots requis dans une requête</title>
- <programlisting language="text"><![CDATA[
- +hello dolly
- ]]></programlisting>
- <para>
- Recherche deux mots ; "hello" est requis, "dolly" est facultatif.
- </para>
- </example>
- <example id="learning.lucene.queries.prohibited-words">
- <title>Interdire des mots dans les documents recherchés</title>
- <programlisting language="text"><![CDATA[
- +hello -dolly
- ]]></programlisting>
- <para>
- Recherche avec deux mots ; "hello" est requis, 'dolly' est interdit. En d'autres termes,
- si le document contient "hello", mais contient aussi le mot "dolly", il ne sera pas
- retourné dans l'ensemble de résultats.
- </para>
- </example>
- <example id="learning.lucene.queries.phrases">
- <title>Rechercher des phrases</title>
- <programlisting language="text"><![CDATA[
- "hello dolly"
- ]]></programlisting>
- <para>
- Recherche de la phrases "hello dolly" ; un document correspond uniquement si la chaine
- exacte est présente.
- </para>
- </example>
- <example id="learning.lucene.queries.fields">
- <title>Effectuer des recherches dans des champs en particulier</title>
- <programlisting language="text"><![CDATA[
- title:"The Right Way" AND text:go
- ]]></programlisting>
- <para>
- Recherche la phrase "The Right Way" au sein du champ <property>title</property> et le mot
- "go" dans la propriété <property>text</property>.
- </para>
- </example>
- <example id="learning.lucene.queries.fields-and-document">
- <title>Effectuer des recherches dans des champs en particulier aussi bien que dans le
- document complet</title>
- <programlisting language="text"><![CDATA[
- title:"The Right Way" AND go
- ]]></programlisting>
- <para>
- Recherche la phrase "The Right Way" dans la propriété <property>title</property> et le
- mot "go" dans tous les champs du document.
- </para>
- </example>
- <example id="learning.lucene.queries.fields-and-document-alt">
- <title>Effectuer des recherches dans des champs en particulier aussi bien que dans le
- document complet (Alternatif)</title>
- <programlisting language="text"><![CDATA[
- title:Do it right
- ]]></programlisting>
- <para>
- Recherche le mot "Do" dans la propriété <property>title</property> et les mots "it" and
- "right" dans tous les champs ; si l'un d'entre eux correspond, le document correspondra
- à un résultat de recherche.
- </para>
- </example>
- <example id="learning.lucene.queries.wildcard-question">
- <title>Faire des requêtes avec le joker "?"</title>
- <programlisting language="text"><![CDATA[
- te?t
- ]]></programlisting>
- <para>
- Recherche les mots correspondants au motif "te?t", où "?" est n'importe quel caractère
- unique.
- </para>
- </example>
- <example id="learning.lucene.queries.wildcard-asterisk">
- <title>Faire des requêtes avec le joker "*"</title>
- <programlisting language="text"><![CDATA[
- test*
- ]]></programlisting>
- <para>
- Recherche les mots correspondants au motif "test*", où "*" est n'importe quelle séquence
- de 0 caractère ou plus.
- </para>
- </example>
- <example id="learning.lucene.queries.range-inclusive">
- <title>Rechercher une gamme inclusive de termes</title>
- <programlisting language="text"><![CDATA[
- mod_date:[20020101 TO 20030101]
- ]]></programlisting>
- <para>
- Recherche la gamme de termes (inclusif).
- </para>
- </example>
- <example id="learning.lucene.queries.range-exclusive">
- <title>Rechercher une gamme exclusive de termes</title>
- <programlisting language="text"><![CDATA[
- title:{Aida to Carmen}
- ]]></programlisting>
- <para>
- Recherche la gamme de termes (exculsif).
- </para>
- </example>
- <example id="learning.lucene.queries.fuzzy">
- <title>Recherches floues</title>
- <programlisting language="text"><![CDATA[
- roam~
- ]]></programlisting>
- <para>
- Recherche foue pour le mot "roam".
- </para>
- </example>
- <example id="learning.lucene.queries.boolean">
- <title>Recherches booléennes</title>
- <programlisting language="text"><![CDATA[
- (framework OR library) AND php
- ]]></programlisting>
- <para>
- Requête booléenne.
- </para>
- </example>
- <para>
- Toutes les requêtes supportées peuvent être construites via
- l'<link linkend="zend.search.lucene.query-api">API de construction de requêtes</link> de
- <classname>Zend_Search_Lucene</classname>. De plus l'analyse et la construction de requêtes
- peuvent être combinées :
- </para>
- <example id="learning.lucene.queries.combining">
- <title>Combinaison d'analyse et de construction de requêtes</title>
- <programlisting language="php"><![CDATA[
- $userQuery = Zend_Search_Lucene_Search_QueryParser::parse($queryStr);
- $query = new Zend_Search_Lucene_Search_Query_Boolean();
- $query->addSubquery($userQuery, true /* required */);
- $query->addSubquery($constructedQuery, true /* required */);
- ]]></programlisting>
- </example>
- </sect1>
|