2017-02-11 3 views
0

Ich habe eine GeoNear-Aggregationsabfrage, die auch ein $ match enthält, das $ text verwendet, um nach einem Schlüsselwort zu suchen. Wenn das Wort genau mit einem Feld in der Datenbank übereinstimmt, erhalte ich doppelte Ergebnisse. Das 2. Ergebnis unterscheidet sich nur nach Entfernung. Ich habe versucht, die einzigartige Option in der Abfrage zu enthalten, aber das 2. Ergebnis ist einzigartig. Vor dem Upgrade auf die neueste Version des Mongo-Treibers konnte das Feld im Index geändert werden. Durch Verschieben des Felds an den Anfang des Index werden dieselben doppelten Ergebnisse zurückgegeben. Das Feld ist das höchste Gewicht bei 32. Irgendwelche Ideen, warum ich ein doppeltes Ergebnis ohne Abstand bekomme?

Antwort

0

Nach einigen Recherchen und Versuch und Irrtum fand ich, dass die Suchtext Index Reihenfolge und Gewicht dies stark beeinflusst. Leider konnten wir die Reihenfolge der Suchtextindexe aus unseren js-Deployment-Deployments nicht auf Mongo umstellen. Ich löste das, indem ich eine Verbindung in lodash benutzte. Zusätzlich müssen Sie die 'unique' Option in der $ geoNear Abfrage setzen.

Verwandte Themen