Я вижу, что мы можем ограничить число сканируемых в MongoDB поиска текста, используя метод, упомянутый в этом документе: http://docs.mongodb.org/manual/tutorial/limit-number-of-items-scanned-for-text-search/MongoDB Text Search
Позвольте мне писать здесь вкратце. У меня есть коллекция документов по инвентаризации:
{ _id: 1, dept: "tech", description: "lime green computer" }
{ _id: 2, dept: "tech", description: "wireless red mouse" }
{ _id: 3, dept: "kitchen", description: "green placemat" }
{ _id: 4, dept: "kitchen", description: "red peeler" }
{ _id: 5, dept: "food", description: "green apple" }
{ _id: 6, dept: "food", description: "red potato" }
Затем я создал индекс:
db.inventory.ensureIndex(
{
dept: 1,
description: "text"
}
)
Я могу написать этот запрос, и она работает:
db.inventory.find({ dept: "kitchen", $text: { $search: "green" } })
Теперь, если я использую это подход, я могу искать в определенном отделе. Моя проблема в том, что я хочу эту функцию, но я также хочу, чтобы во всех отделах была свобода. Но этот запрос не работает: db.inventory.find({ $text: { $search: "green" } })
Я использую версию 2.6.5.