MongoDB предоставляет полнотекстовый поиск двумя основными способами: встроенными text indexes и более продвинутым Atlas Search.
Text index можно создать на одном или нескольких строковых полях, что позволяет выполнять поиск по ключевым словам в документах.
db.articles.createIndex({ content: "text" })
Ты также можешь индексировать несколько полей одновременно, используя wildcard text index:
db.articles.createIndex({ "$**": "text" })
После того как text index создан, используй оператор $text с $search для выполнения запроса:
db.articles.find({ $text: { $search: "mongodb nosql" } })
Ключевые особенности запросов $text:
"mongodb -nosql"){ score: { $meta: "textScore" } }Для более сложных требований MongoDB Atlas Search работает на базе Apache Lucene и предлагает:
Используй text indexes для простого, легковесного полнотекстового поиска в самостоятельно развёрнутых окружениях или Atlas. Выбирай Atlas Search, когда нужны продвинутые возможности поиска, сравнимые с полноценными поисковыми движками вроде Elasticsearch.
По умолчанию текстовые индексы в MongoDB обрабатывают несколько поисковых терминов как логическое ИЛИ, поэтому поиск по 'mongodb nosql' вернёт документы, содержащие любой из этих терминов, если только они не в кавычках.
Новый — ещё не проверен сообществом
Вы