SOLR Suchabfrage Groß- / Kleinschreibung beachten

9

Ich versuche, eine SOLR-Suche für einige Datensätze mit Vorname als;

zu verwenden %Vor%

Jetzt versuche ich eine Suche mit Wildcard-Zeichenunterstützung durchzuführen. Ich muss verstehen, wie genau die Suche in Bezug auf die Groß- und Kleinschreibung funktioniert.

z.B. Wenn ich den FirstName-Parameter als ab * Vs Ab * übergebe, welche Datensätze würden zurückgegeben?

Gibt es eine Möglichkeit, die Suche zu erzwingen oder zu erzwingen, ob sie fallsensitiv oder fallinsensiv ist?

Bitte helfen Sie. Danke.

    
testndtv 17.07.2012, 08:55
quelle

4 Antworten

6

Es hängt davon ab, wie Sie Ihre Felder in schema.xml definieren. Wenn Sie LowerCaseFilterFactory beim Indexieren und Abfragen verwenden, wird bei allen Abfragen die Groß- / Kleinschreibung nicht beachtet. Andernfalls wird die Groß- / Kleinschreibung beachtet.

%Vor%     
Parvin Gasimzade 17.07.2012, 09:06
quelle
7

Sie konfigurieren es in Ihrem Schema. Zum Beispiel:

%Vor%

bedeutet, dass das Feld für Abfragen als Kleinbuchstaben betrachtet wird. Dies gibt den Eindruck, dass die Groß- / Kleinschreibung nicht berücksichtigt wird.

    
Francisco Spaeth 17.07.2012 09:08
quelle
3

Standard definierte Felder im solr-Schema funktionieren sehr unterschiedlich.

Der Datentyp 'string' speichert ein Wort als exakte Zeichenfolge, die nicht vollständig ist.

Während 'text_general' normalerweise die Tokenisierung und die sekundäre Verarbeitung durchführt (z. B. Groß- und Kleinschreibung nicht beachten). Es ist sehr nützlich für alle Szenarien, wenn wir einen Teil eines Satzes zusammenbringen wollen.

Wenn das folgende Beispiel "In den Satz suchen" für beide Felder indiziert ist, müssen wir genau nach der Suche in den Satz suchen, um einen Treffer vom Zeichenfolgenfeld zu erhalten, während es im Fall von text_general das unterschiedliche Ergebnis zurückgibt .

Hier wird der Verkäufername genau in der Suchzeichenfolge gefunden, während der Produktname in den ganzen obigen Satz gesucht wird.

Beispiel:

%Vor%     
Aman Garg 27.05.2016 12:25
quelle
2

Standardmäßig wird ein Wert genau mit dem gespeicherten Wert verglichen. Wenn ein Feld die Groß- / Kleinschreibung nicht beachten soll, ist der übliche Weg, einen Feldtyp zu verwenden, der einen Kleinbuchstabenfilter verwendet, wodurch alle indizierten Inhalte den gleichen Fall haben und die Suche praktisch unempfindlich ist (da der Abfragewert ebenfalls klein ist) ).

Der Beispielinhalt tut dies für die Feldtypen 'text' und 'text_en':

%Vor%

Es gibt jedoch ein paar spezielle Bereiche, in denen die automatische Handhabung von Lowcases für Wildcard-Abfragen Probleme verursachen kann, und MultitermQueryAnalysis wurde in Solr 3.6 eingeführt und 4.0, um diese Situationen zu bewältigen . 3.6 und 4.0 sollten Wildcard-Suche automatisch richtig machen, wenn das Feld bereits kleingeschrieben ist.

Ich würde vorschlagen, den Namen in der Abfrage zu verringern (solange Sie die LowerCaseFilterFactory auch bei der Indizierung angewendet haben), wenn Sie Platzhalter verwenden, wenn Sie nicht das korrekte Verhalten vor 3.6 erhalten.

    
MatsLindh 17.07.2012 09:10
quelle

Tags und Links