Ist der Forward-Schrägstrich "/" ein reserviertes Zeichen in solr-Feldnamen?
Ich habe Probleme beim Schreiben einer Solr-Sortier-Abfrage, die nach Feldern mit einem Schrägstrich "/"
suchtWenn ich eine http-Anfrage an meinen solr-Server mache:
%Vor%Funktioniert aber
%Vor%Beide Fehler sagen "FieldCache kann nicht in mehrwertigen Feldern verwendet werden: mit"
Jedes Solr-Dokument enthält zwei int-Felder "normal" und "mit / Schrägstrich". Mit meinem Solr-Schema indizieren die Felder als so
%Vor%Gibt es eine spezielle Möglichkeit, um Schrägstriche in solr zu codieren? Oder gibt es noch andere Begrenzungszeichen, die ich verwenden kann? Ich benutze bereits "-" und "." für andere Zwecke.
Ich habe gerade das gleiche Problem gefunden und nach einigen Experimenten festgestellt, dass Sie, wenn Sie einen Schrägstrich im Feldnamen haben, in der Solr-Abfrage mit einem Backslash escape (aber beachten Sie Das müssen Sie nicht im Feldlistenparameter tun, daher wird eine Suche, die nach /my/field/name
sucht, die my_value enthält, in das Feld "q" eingegeben:
\/my\/field\/name:my_value
Ich habe das Sortierfeld nicht ausprobiert, aber probiere das aus und lass es uns wissen:)
Dies ist auf Solr 4.0.0 alpha.
Aus dem Solr-Wiki in Ссылка :
Solr 4.0 hat die Unterstützung für reguläre Ausdrücke hinzugefügt, was bedeutet, dass '/' jetzt ist ein Sonderzeichen und muss bei der Suche nach Literal maskiert werden Schrägstrich.
In meinem Fall musste ich nach dem Schrägstrich /
mit der Wildcard *
suchen, z. B.:
Ich habe versucht, so zu entkommen:
%Vor%aber das hat auch nicht funktioniert.
Die Lösung bestand darin, den Text mit double quote "
like do:
beide haben das gleiche Ergebnis mit und ohne Umgehung des Schrägstrichs
zurückgegeben