analysiert v not_analyzed oder ...?

8

Neu in ES also vielleicht eine dumme Frage, aber ich versuche mit einem Platzhalter zu suchen, z. B .: "SOMECODE*" und "*SOMECODE"

Es funktioniert einwandfrei, aber der Wert im Dokument kann "SOMECODE/FRED" haben.
Das Problem ist * passt zu allem (was nichts beinhaltet).
*SOMECODE bekommt einen Treffer auf SOMECODE/FRED .

Ich habe versucht, nach */SOMECODE zu suchen, aber das gibt nichts zurück.
Ich denke, die Tokenisierung des Feldes ist das Grundproblem h. / bewirkt, dass der Wert 2 Wörter ist.

Ich habe versucht, die Karte auf dem Feld auf not_analyzed zu setzen, aber dann kann ich gar nicht danach suchen.

Tue ich es falsch?

Danke

    
Jonesie 30.01.2013, 02:52
quelle

1 Antwort

13

Wenn Sie not_analyzed einstellen, erlauben Sie nur exakte Übereinstimmungen (z. B. "SOMECODE/FRED" nur, einschließlich Groß- / Kleinschreibung und Sonderzeichen).

Ich nehme an, dass Sie den Standardanalysator verwenden (es ist der Standardanalysator, wenn Sie keinen Standardanalysator angeben). Wenn dies der Fall ist, behandelt Standard Schrägstriche als Token-Trennzeichen und generiert zwei Tokens [somecode] und [fred] :

%Vor%

Wenn Sie dieses Verhalten nicht möchten, müssen Sie zu einem Tokenizer wechseln, der keine Sonderzeichen enthält. Allerdings würde ich den Anwendungsfall dafür in Frage stellen. Im Allgemeinen sollten Sie diese Zeichenarten aufteilen.

    
Zach 30.01.2013, 20:56
quelle

Tags und Links