Die Datenmenge beträgt eine Million, nicht zu groß. Es gibt ein Feld mit einer Wertlänge von > 100, das sehr lang ist und Chinesisch, Englisch und fast alle Zeichen enthält. Es wird eine Volltextindizierung verwendet, die jedoch nicht ideal ist:
1. Die Suche ist extrem langsam, selbst wenn der Index verwendet wird.
db.tests.find({'$text':{'$search':'test'}})
2. Bei der Suche nach '' wird es zwar in '' konvertiert, es erfolgt jedoch keine Reflexion, als ob es überhaupt nicht ausgeführt würde. Wiederholt beenden, erneut öffnen (bezogen auf den Mongo des Kunden) und erneut abfragen. Dadurch wird der Speicher gefüllt (12 GB, außer das System kann 11 GB verwenden) und sofort eingefroren. Harter Neustart.
db.tests.find({'$text':{'$search':'test.06'}}) #想要的。 但是通过web输入会变成 db.tests.find({'$text':{'$search':'test\1.06'}})
Ich frage mich, ob die Indexierung für diese Art von Anforderungen geeignet ist?
Danke
全文索引目前建议还是使用专门的搜索引擎去做,MongoDB虽然支持全文索引,但是功能并不是很丰富,使用场景有局限性,很多情况下还存在问题,所以并不推荐使用。