[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [InetBib] Syntax von Suchanfragen: best practices



Hallo Herr Prante,

die Frage ist m.E. letztendlich, wo man die Grenze zwischen Normal- und 
Expertensuche zieht. Wenn man auf der einen Seite annimmt, dass sich die 
Verwendung der Platzhalterzeichen '*' und '?' mittlerweile durchgesetzt 
hat, dann braucht man aber auch wieder einen Mechanismus um diese 
Interpretation als Spezialzeichen abzuschalten (um die Suche nach genau 
diesen Zeichen zu unterstützen). Dass dies offensichtlich gar nicht so 
einfach ist, zeigen ihre Beispiele.

Daher war meine Überlegung sämtliche Lucene Special Chars von vornherein 
zu ignorieren (d.h. sie innerhalb der Applikation zu maskieren) und dem 
Expertennutzer dann die Möglichkeit zu bieten, dieses Feature wieder 
abzuschalten (mit der Konsequenz, dass er/sie das Escaping nun händisch 
vornehmen muss, sofern notwendig).

Vielleicht ist es aber auch sinnvoller, dieses applikationsseitige 
Escaping nicht pauschal durchzuführen, sondern es für die einzelnen 
Spezialzeichen [1] getrennt zu diskutieren. Scheinbar gibt es ja Zeichen 
(wie '*', '?'), die vom Normalbenutzer eher in ihrer Spezialbedeutung 
wahrgenommen werden, und auf der anderen Seite Zeichen (wie ':' oder 
'/'), deren Spezialbedeutung dem Benutzer eher unbekannt ist.

Ranking ist m.E. nochmal eine andere Sache. Wenn nämlich schon die 
Interpretation der Suchanfrage durch das System nicht mit der des 
Benutzers übereinstimmt, dann wird das Relevanzranking i.d.R. auch 
nichts mehr retten können.

Beste Grüße,
Sascha Szott

[1] 
http://lucene.apache.org/core/4_0_0-ALPHA//queryparser/org/apache/lucene/queryparser/classic/package-summary.html?is-external=true#Escaping_Special_Characters


On 13.08.2012 21:36, Jörg Prante wrote:
Hallo Herr Szott,

Am 13.08.12 19:44, schrieb Sascha Szott:
Ich habe das mal kurz exemplarisch in verschiedenen Systemen ausprobiert
(Primo, Summon, VuFind) und festgestellt, dass es hier offenbar keine
einheitliche Behandlung gibt. In den meisten Fällen bekomme ich auch "a
algorithm …" bzw. "b trees" als Suchtreffer ausgegeben (ich habe jeweils
die Titelsuche gewählt, um auszuschließen, dass der Hit irgendwo im TOC,
Abstract oder Volltext enthalten ist).
um explizit bestimmte unerwünschte Suchtreffer auszuschliessen, gibt es
weitere Operatoren, z.B.

Google:

"b+ trees" -"b trees"

CQL-Syntax:

title = "\"b+-trees\"" not title = "\"b trees\""

mit anderen Worten, eine "andnot"-Operation kann gewährleisten, dass
Treffer gefiltert werden, die "b tree" enthalten. Falls es jedoch keine
Indexierung des speziellen Symbols '+' oder andere Vorkehrungen zur
Phrasensuche gegeben hat, ergibt sich häufig die leere Menge.

Mit Google funktioniert es z.B. ganz gut
https://www.google.de/search?q=%22b%2B+trees%22+-%22b+trees%22

Eine Anfrageformulierung mit einer Differenzmengenoperation erscheint
mir persönlich relativ zum erzielten Ergebnis etwas umständlich.
Vielleicht ist das Geschmackssache. Gute Implementierungen leisten durch
das Rankingverfahren (Gewichtung des Abstands der getroffenen Wörter im
Dokument), dass die gewünschten Treffer bereits mit einer einfach
formulierbaren Ein-Phrasen-Suche ganz oben in der Treffermenge auftauchen.

Viele Grüße

Jörg Prante


-- 
Sascha Szott :: KOBV/ZIB :: <szott@xxxxxx> :: +49 30 84185-457


-- 
http://www.inetbib.de

Listeninformationen unter http://www.inetbib.de.