2 Stimmen

Escaped asterisk/query mark do not escape when using leading wildcard in Edismax

Ich versuche, mit dem Edismax-Parser Dokumente zu finden, die Sternchen/Abfragezeichen in einem Solr-Textfeld enthalten. Alles funktioniert perfekt, wenn ich nach normalem Text suche ( fq={!edismax}textfield:*sometext* ) oder auch für jede andere Lucene-Sonderzeichen unter Verwendung von Escaping ( fq={!edismax}textfield:*\~* ).

Doch bei der Suche nach * ( fq={!edismax}textfield:*\** ) oder ? ( fq={!edismax}textfield:*\?* ) werden diese Zeichen offenbar nicht escaped, da alle Dokumente zurückgegeben werden. Ich versuche auch URL-Kodierung für escapete Zeichen (wie \%2A anstelle von \* ), das Ergebnis ist jedoch das gleiche.

Das Problem scheint nur führende Wildcards zu betreffen, da fq={!edismax}textfield:\** y fq={!edismax}textfield:\?* korrekte Ergebnisse liefern, aber fq={!edismax}textfield:*\* y fq={!edismax}textfield:*\? nicht (ebenso wenig wie fq={!edismax}textfield:*sometext\* usw.).

Wie ist es möglich, eine Suche nach * / ? Edismax mit vorangestelltem Sternchen als Platzhalter verwenden?

0voto

Walter Underwood Punkte 1191

Das Zitieren des Sternchens funktioniert bei mir. Diese Abfrage findet zwei Bücher in meinem Index, die ein eigenständiges Sternchen im Titel haben:

title:"*"

Hier ist der Titel eines dieser Bücher: "Be * Know * Do, Adapted from the Official Army Leadership Manual".

Ich verwende einen edismax mit Solr 3.3.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X