File: lucene-queries.xml

package info (click to toggle)
zendframework 1.12.9%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 133,584 kB
  • sloc: xml: 1,311,829; php: 570,173; sh: 170; makefile: 125; sql: 121
file content (234 lines) | stat: -rwxr-xr-x 7,606 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
<?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>