Ich verwende Solr für eine Unternehmensanwendung. Bis jetzt funktioniert es gut, da ich ein Ngram-Feld verwende, um dagegen zu suchen. Es funktioniert ordnungsgemäß für Teilabfragen (Abgleich mit indizierten Ngrammen). Aber das Problem, das ich habe, ist, wie man genaue Abfragematches durchsetzt. Für ein Beispiel sollte die Abfrage "Test 1" genau mit dem gleichen Text übereinstimmen, wie er ist, wenn der Benutzer ihn in doppelte Anführungszeichen eingibt. Derzeit Seit ich einige Tokenizer und Filter verwendet habe, werden die doppelten Anführungszeichen ausgefiltert, es gibt keinen Unterschied in den Abfragen "test 1", "tEst 1" or "TEST 1"
(das ist wegen der Analysator-Kette, die ich verwende, aber es ist notwendig, mit Ngrams und partielle Suche zu arbeiten).Solr Suche Best Practices
Derzeit suche ich nach einem Ngram-Abfrage-Feld. Um eine genaue Abfrage zu erzwingen, was soll ich tun? Was ist die beste Praxis? Derzeit denke ich, dass die doppelten Anführungszeichen auf der Client-Seite identifiziert werden müssen und das Abfragefeld in das ursprüngliche Feld geändert werden soll (ohne ngrams). Aber ich denke, es sollte einen besseren Weg geben, dies zu tun, da das Problem, das ich habe, generisch ist und solr
ist eine komplette Enterprise-Level-Suchmaschine.
Also meinst du, ich sollte ich die Doppelzitate von der Client-Seite identifizieren und das Abfragefeld entsprechend ändern ?. Ich habe darüber nachgedacht, aber ist das nicht ein generisches Problem, dass Solr es schon gelöst haben könnte? Ich dachte, ich könnte das Rad neu erfinden – wattale
@wattale: Bitte überprüfen Sie die Antwort Ich habe eine weitere Option hinzugefügt ... –
Aber die Frage ist, wie kann ich damit umgehen, wenn der Benutzer absichtlich die Abfrage mit doppelten Zitaten eingeben ?. In Ihrem Ansatz müssen wir einen Mechanismus verwenden, um den Index zu normalisieren und beide abzufragen, dann gibt es keine Bedeutung der doppelten Zitate. Es sollte auch Groß- und Kleinschreibung beachten. Ich habe das PF-Feld im Edismax-Parser gefunden .. Ich schaue es mir an :) – wattale