Gibt es in elasticsearch eine Möglichkeit, einen Analysator einzurichten, der bei Zeilenumbrüchen oder Interpunktionszeichen Positionslücken zwischen Token erzeugt?
Nehmen wir an, ich indexiere ein Objekt mit der folgenden unsinnigen Zeichenfolge (mit Zeilenumbruch) als eines seiner Felder:
%Vor%Der Standardanalysator liefert die folgenden Token mit den entsprechenden Positionen:
%Vor% Dies bedeutet, dass eine match_phrase
Abfrage von the rabbit then comes
diesem Dokument als Treffer entspricht.
Gibt es eine Möglichkeit, eine Positionslücke zwischen rabbit
und then
einzuführen, sodass sie nicht übereinstimmt, wenn nicht slop
eingeführt wird?
Natürlich könnte eine Umgehung die Umwandlung der einzelnen Zeichenfolge in ein Array (eine Zeile pro Eintrag) und die Verwendung von position_offset_gap
in der Feldzuordnung sein, aber ich würde lieber eine einzelne Zeichenfolge mit Zeilenumbrüchen beibehalten (und eine ultimative Lösung würde dies tun) umfassen größere Positionslücken für Zeilenumbrüche als beispielsweise für Satzzeichen).
Tags und Links elasticsearch analyzer