|
|
@@ -1,5 +1,5 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
-<!-- EN-Revision: 21821 -->
|
|
|
+<!-- EN-Revision: 21829 -->
|
|
|
<!-- Reviewed: no -->
|
|
|
<sect1 id="zend.search.lucene.query-language">
|
|
|
<title>Abfragesprache</title>
|
|
|
@@ -108,11 +108,13 @@ title:"Mach es richtig" AND go
|
|
|
<para>
|
|
|
Beachte: Das Feld nur nur für den Ausdruck, die Phrase oder die Unterabfrage gültig die
|
|
|
direkt danach folgt, sodas die Abfrage
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
title:Mach es richtig
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
nur "Mach" im title Feld finden wird. Es findet "es" und "richtig" im Standardfeld (wenn
|
|
|
das Standardfeld gesetzt ist) oder in allen indizierten Felder (wenn das Standardfeld
|
|
|
auf <constant>NULL</constant> gesetzt ist).
|
|
|
@@ -139,29 +141,31 @@ title:Mach es richtig
|
|
|
Die Einzelzeichen Wildcardsuche schucht nach Strings die dem Begriff entsprechen wobei
|
|
|
das "?" durch ein beliebiges einzelnes Zeichen ersetzt wird. Um, zum Beispiel, nach
|
|
|
"Text" oder "Test" zu suchen kann die folgende Suche verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
Te?t
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
|
|
|
<para>
|
|
|
Mehrzeichen Wildcardsuche sucht nach 0 oder mehr Zeichen wenn Strings nach passenden
|
|
|
Begriffen sucht. Um, zum Beispiel, nach Test, Tests oder Tester zu suchen, kann die
|
|
|
folgende Suche verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
Test*
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
|
|
|
<para>
|
|
|
Es können "?", "*" oder beide an jeder Stelle des Ausdrucks verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
*schrei?t*
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Sucht nach "schreibt", "schreibtisch", "beschreibt", "schreist" und so weiter.
|
|
|
</para>
|
|
|
|
|
|
@@ -210,19 +214,23 @@ Test*
|
|
|
Felder zwischen der unteren und oberen Grenze sind die durch die Bereichsabfrage
|
|
|
spezifiziert wurden. Bereichsabfragen können inklusive oder exklusive der oberen und
|
|
|
unteren Grenze sein. Sortierungen werden lexikalisch durchgeführt.
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
mod_date:[20020101 TO 20030101]
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Das wird Dokumente finden dessen lod_date Felder Werte zwischen 20020101 und 20030101
|
|
|
inklusive haben. Es ist zu beachten das Bereichsabfragen nicht für Datumsfelder
|
|
|
reserviert sind. Bereichsabfragen können auch mit nicht-datums Felder verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
title:{Aida TO Carmen}
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Das wird alle Dokumente finden dessen Titel zwischen Aida und Carmen sortiert sind,
|
|
|
aber ohne Aida und Carmen.
|
|
|
</para>
|
|
|
@@ -235,11 +243,11 @@ title:{Aida TO Carmen}
|
|
|
<para>
|
|
|
Wenn kein Feld spezifiziert wurde sucht <classname>Zend_Search_Lucene</classname>
|
|
|
standardmäßig nach spezifizierten Intervallen in allen Feldern.
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
{Aida TO Carmen}
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.search.lucene.query-language.fuzzy">
|
|
|
@@ -251,20 +259,24 @@ title:{Aida TO Carmen}
|
|
|
Fuzzy Suche durchzuführen muß das Tilde Symbol "~", am Ende eines einzelnen Wortbegriffs
|
|
|
verwendet werden. Um zum Beispiel nach einem Begriff zu suchen der in der Aussprache
|
|
|
ähnlich zu "Raum" ist kann die folgende Fuzzy Suche verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
roam~
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Diese Suche wird Begriffe wie "Baum" und "Saum" finden. Zusätzliche (optionale)
|
|
|
Parameter können die benötigte Ähnlichkeit spezifizieren. Der Wert muß zwischen 0 und 1
|
|
|
sein. Mit einem Wert näher bei 1 werden nur Begriffe mit einer höheren Warscheinlichkeit
|
|
|
gefunden. Zum Beispiel:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
roam~0.8
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Der verwendete Standardwert wenn der Parameter nicht angegeben wurde ist 0.5.
|
|
|
</para>
|
|
|
</sect2>
|
|
|
@@ -299,11 +311,11 @@ roam~0.8
|
|
|
das Tilde, "~", Symbol am Ende der Phrase verwendet werden. Um zum Beispiel nach "Zend"
|
|
|
und "Framework" innerhalb von 10 Wörtern zueinander in einem Dokument zu suchen kann die
|
|
|
folgende Suche verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
"Zend Framework"~10
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.search.lucene.query-language.boosting">
|
|
|
@@ -320,26 +332,32 @@ roam~0.8
|
|
|
<para>
|
|
|
Das boosten erlaubt die Kontrolle der Relevanz eines Dokuments durch das boosten
|
|
|
individueller Ausdrücke. Wenn man zum Beispiel nach
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
PHP framework
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
sucht und will das der Ausdruck "PHP" mehr Relevanz hat, kann er durch Verwendung des ^
|
|
|
Symbols zusammen mit einem Boost Faktor beim Ausdruck geboostet werden. Man würde zum
|
|
|
Beispiel folgendes angeben:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
PHP^4 framework
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Das macht Dokumente in denen der Ausdruck <acronym>PHP</acronym> vorkommt relevanter.
|
|
|
Man kann genauso Phrasenausdrücke boosten und Unterabfragen wie im Beispiel gezeigt:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
"PHP framework"^4 "Zend Framework"
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
Standardwert ist der Boost Faktor 1. Auch wenn der Boost Faktor positiv sein muß, kann
|
|
|
er kleiner als 1 sein (z.B. 0.2).
|
|
|
</para>
|
|
|
@@ -379,11 +397,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach Dokumenten zu Suchen die "PHP Framework" und "Zend Framework" enthalten kann
|
|
|
die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
"PHP Framework" AND "Zend Framework"
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.search.lucene.query-language.boolean.or">
|
|
|
@@ -396,11 +414,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach Dokumenten zu Suchen die "PHP Framework" oder "Zend Framework" enthalten
|
|
|
kann die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
"PHP Framework" OR "Zend Framework"
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.search.lucene.query-language.boolean.not">
|
|
|
@@ -415,11 +433,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach Dokumenten zu Suchen die "PHP Framework" enthalten aber "Zend Framework"
|
|
|
nicht kann die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
"PHP Framework" AND NOT "Zend Framework"
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.search.lucene.query-language.boolean.other-form">
|
|
|
@@ -441,11 +459,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach Dokumenten zu Suchen die "Zend" enthalten müssen und "Framework" enthalten
|
|
|
können, kann die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
+Zend Framework
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.search.lucene.query-language.boolean.minus">
|
|
|
@@ -459,11 +477,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach Dokumenten zu Suchen die "PHP Framework" enthalten aber "Zend Framework"
|
|
|
nicht, kann die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
"PHP Framework" -"Zend Framework"
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect3>
|
|
|
|
|
|
<sect3 id="zend.search.lucene.query-language.boolean.no-operator">
|
|
|
@@ -487,11 +505,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach Dokumenten zu Suchen die "PHP Framework" benötigen und "Zend Framework"
|
|
|
enthalten können kann die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
+"PHP Framework" "Zend Framework"
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
|
|
|
<para>
|
|
|
Der standardmäßige boolsche Operator kann mit den
|
|
|
@@ -517,11 +535,13 @@ PHP^4 framework
|
|
|
von Klammern um Fälle zu gruppieren und Unterabfragen zu erstellen. Das kann nützlich
|
|
|
sein wenn man die boolsche Operatoren für eine Abfrage kontrollieren will, oder
|
|
|
unterschiedliche Abfragestile mischen will:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
+(Framework OR Bibliothek) +php
|
|
|
]]></programlisting>
|
|
|
|
|
|
+ <para>
|
|
|
<classname>Zend_Search_Lucene</classname> unterstützt Unterabfragen von beliebigen
|
|
|
Ebenen.
|
|
|
</para>
|
|
|
@@ -538,11 +558,11 @@ PHP^4 framework
|
|
|
<para>
|
|
|
Um nach einem Titel zu suchen die sowohl das Wort "Rückkehr" und die Phrase "rosaroter
|
|
|
Panther" kann die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
title:(+Rückkehr +"rosaroter Panther")
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect2>
|
|
|
|
|
|
<sect2 id="zend.search.lucene.query-language.escaping">
|
|
|
@@ -565,10 +585,10 @@ title:(+Rückkehr +"rosaroter Panther")
|
|
|
Für andere Instanzen von solchen Zeichen kann das \ vor jedem speziellen Zeichen
|
|
|
verwendet werden der escaped werden soll. Um zum Beispiel nach (1+1):2 zu suchen kann
|
|
|
die folgende Abfrage verwendet werden:
|
|
|
+ </para>
|
|
|
|
|
|
- <programlisting language="querystring"><![CDATA[
|
|
|
+ <programlisting language="querystring"><![CDATA[
|
|
|
\(1\+1\)\:2
|
|
|
]]></programlisting>
|
|
|
- </para>
|
|
|
</sect2>
|
|
|
</sect1>
|