|
|
@@ -1,234 +1,234 @@
|
|
|
-<?xml version="1.0" encoding="utf-8"?>
|
|
|
-<!-- EN-Revision: 19807 -->
|
|
|
-<!-- 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>
|
|
|
+<?xml version="1.0" encoding="utf-8"?>
|
|
|
+<!-- EN-Revision: 19807 -->
|
|
|
+<!-- 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>
|