2016-04-27 7 views
0

Ich kann keine Dokumentation auf der Solr-Website finden, die angibt, wie Sie nach einer Zeichenfolge suchen, die ein literales Hash-Zeichen enthält.Suche nach Literal-Hash-Zeichen in Solr-Abfrage

Beispiel:

?q=id_number:723#52

Ich habe versucht, den Hash zu entkommen, 723\#52 und HTML-Codierung es, 723%2352, aber die solr Ausgabe zeigt, dass es bei dem Hash-Symbol jedes Mal abschneidet:

<response> 
<lst name="responseHeader"> 
<int name="status">400</int> 
<int name="QTime">2</int> 
<lst name="params"> 
<str name="q">id_number:723</str> 
</lst> 
</lst> 
+1

haben Sie mit Zitaten versuchen. id_number: "723 # 52" – vinod

+0

Ich habe es gerade noch einmal mit dem URL-codierten Wert '723% 2352' versucht, und es hat ein paar Mal funktioniert - ich denke, das stimmt, ich muss irgendwo einen Fehler gemacht haben sonst. Wenn ich den Wert in Anführungszeichen setze, funktioniert es für mich nicht, wenn ich es durch PHP übergebe, also denke ich, dass es nur ein Problem mit der URL-Codierung war. –

Antwort

1

Da solr die Abfrage mit der Klasse solr.StandardTokenizer tokenisiert, wird # character aus der Abfrage entfernt. Sie können den Tokenizer für die Feldtypdefinition ändern. In Ihrem Fall für Feld id_number die Filterklasse von solr.StandardTokenizer zu ändern solr.WhiteSpaceTokenizer

Aber diese Methode tun wird alle anderen Sonderzeichen in der Abfrage übernehmen. (:, Usw.)