2017-01-19 3 views
0

Ich versuche, Dateifreigaben als eine Möglichkeit zur Identifizierung von Geheimnissen zu indizieren. Das Problem besteht darin, dass die meisten Geheimnisse (z. B. P @ ssw0rd!) Sonderzeichen enthalten, die nicht leicht zu maskieren sind. Ich brauche eine Möglichkeit, nach einer exakten Zeichenkette zu suchen und dabei die Bedeutung der Sonderzeichen zu ignorieren. Ich verwende SOLR 6.3 und glaube, dass es ein verwaltetes Schema verwendet, das auf einer REST-API zur Konfiguration beruht. Ich habe das mit der älteren Schema-Methode etwas gelöst, aber nicht diese.SOLR Abfrage für literale Werte ignorieren Fall

Antwort

0

Wenn Sie nur eine exakte Übereinstimmung mit dem vollständigen Wert eines Felds wünschen, verwenden Sie ein Feld string, da dies nur genaue Übereinstimmungen ohne weitere Verarbeitung ergibt.

Um den Feldtyp zu ändern oder ein neues Feld mit einem bestimmten Typ über die Schema-API (das verwaltete Schema) hinzuzufügen, verwenden Sie the add field method mit string als Feldtyp.

Wenn Sie keine Client-Bibliothek verwenden, müssen Sie in Solr immer noch [ein beliebiges Zeichen mit spezieller Bedeutung] (https://lucene.apache.org/core/2_9_4/queryparsersyntax.html#Escaping Sonderzeichen) zurücklassen (die Bibliothek wird dies für Sie tun, wenn Sie SolrJ für verwenden) Beispiel) - dies wird keine falsche positive geben, aber bestimmte Strings nicht in der Lage sein, das Feld zu entsprechen (wenn das Geheimnis zum Beispiel ein Leerzeichen hat).

+0

Ich habe eine Zeichenfolge eingefügt und es scheint mit Testdaten zu arbeiten. Danke für die Hilfe. –

+0

Scheint zu funktionieren, außer für das "@" Symbol. Dies ist nicht als Sonderzeichen aufgeführt und kann daher nicht mit einem "\" gelöscht werden. –

+0

Sollte nichts Besonderes an einem @ in einer Abfragezeichenfolge sein. Wie sieht Ihre Abfrage aus und was ist der Inhalt des Feldes _string_? – MatsLindh