Ich suche seit Tagen bei Google und habe viele Dinge ausprobiert, kann aber immer noch keine gute Volltextsuche für meine Benutzersammlung durchführen.
Ich habe ElasticSearch ausprobiert, war aber ziemlich unmöglich abzufragen und zu paginieren ...
Ich habe viele Plugins für Mongoose ausprobiert, wie ElMongo, Mungo-Volltext, Mongoosastic usw. Alle sind wirklich schlecht dokumentiert und ich weiß nicht, wie man eine gute Volltextsuche durchführt.
Meine Sammlung ist also eine normale Sammlung:
user = {
name: String,
email: String,
profile: {
something: String,
somethingElse: String
}
}
Ich habe eine Sucheingabe auf einer Seite mit einer einfachen POST
, wenn ich hello world
tippe, muss ich in den gesamten Sammlungsfeldern die passenden Wörter meiner Suchabfrage suchen und die Ergebnisse erhalten.
Es wird auch sehr schön sein, Optionen zu haben, um mit einer Paginierung wie 10 Elementen pro Seite oder so etwas umzugehen ...
Was ist die beste Lösung, um dies zu erreichen? Ich verwende MongoDB 2.6. * Mit Mongoose, NodeJS und ExpressJS.
Vielen Dank.
Für Suchanfragen können Sie das Elasticsearch-Plugin verwenden. In Elasticsearch können Sie Ihre eigene benutzerdefinierte Suchabfrage erstellen, um einen bestimmten Text und eine bestimmte Zeichenfolge mit der angegebenen Zeitdauer in Echtzeit zu suchen.
Zuvor müssen Sie jedoch die Indizierung Ihrer in MongoDB befindlichen JSON-Dokumente vornehmen. Sie müssen MongoDB mit dem Elasticsearch-Server verbinden. Wenn Sie dann die River-Funktionalität von Elasticsearch verwenden, müssen Sie die Indizierung Ihrer Daten im Elasticsearch-Server vornehmen. Dann können nur Sie Ihre benutzerdefinierte Suchabfrage durchführen.
quelle