[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [InetBib] Syntax von Suchanfragen: best practices
- Date: Mon, 13 Aug 2012 22:36:57 +0200
- From: Sascha Szott <szott@xxxxxx>
- Subject: 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.