Bevorzugen Sie beim Mapping die exakten Übereinstimmungen gegenüber den Ngram-Übereinstimmungen in ElasticSearch

Ich habe teilweise Übereinstimmung von Wörtern, die mit ngrams arbeiten. Wie kann ich die Zuordnung ändern, um immer exakte Übereinstimmungen gegenüber Ngram-Tokens zu bevorzugen? Ich möchte die Abfrage nicht ändern. Ein Suchfeld durchsucht mehrere Typen mit jeweils eigenen Feldern.

Nehmen wir zum Beispiel an, ich suche nach Jobtiteln, eine Person hat den Titel "Außendiensttechniker", die andere den Titel "Motorentechniker". Wenn ein Benutzer nach "engine" sucht, möchte ich, dass ES letztere als relevanter zurückgibt.

Ich benutze dieses Mapping fast wörtlich:https://stackoverflow.com/a/19874785/978622 -Ausnahme: Ich verwende ein ngram mit min von 3 und max von 11 anstelle von edge ngram

Ist es möglich, einem Analysator einen Boost / Function Score zuzuweisen? In diesem Fall wende ich sowohl den Analysator "full_name" als auch den Analysator "partial_name" auf meinen Index an und erhöhe den ersten.

Bearbeiten: Ich verwende ElasticSearch 1.1.1 und Nest 1.0.0 Beta

Antworten auf die Frage(1)

Ihre Antwort auf die Frage