У меня был вопрос об использовании find для поиска по ключевым словам 'by', 'and'... в моих коллекциях, но это было неправильно в некоторых ситуациях, кто-нибудь знает, как это исправить?
Это моя коллекция и индексы:
db.stores.insert(
[
{ _id: 1, name: "Java Hut", description: "Coffee and cakes by Me" },
{ _id: 2, name: "Burger Buns", description: "by" },
{ _id: 3, name: "Coffee Shop", description: "Just coffee" },
{ _id: 4, name: "Clothes Clothes Clothes", description: "By Clothes" }
]
)
db.stores.createIndex( { name: "text", description: "text" } )
И эти сценарии будут в порядке
db.stores.find({description: /by/})
db.stores.find({description: /and/})
db.stores.find( { $text: { $search: "java coffee shop" } } )
db.stores.find( { $text: { $search: "\"coffee shop\"" } } )
db.stores.find( { $text: { $search: "\"and cakes by\"" } } )
db.stores.find( { $text: { $search: "and cakes by" } } )
db.stores.find( { $text: { $search: "cakes" } } )
db.stores.find( { $text: { $search: "coffee" } } )
Но что-то здесь не так, я не понимаю, почему ключевые слова "от", "и", "я"... нельзя использовать в этом запросе. Почему это происходит неправильно, когда я использую его один в текстовом поиске?
db.stores.find( { $text: { $search: "by" } } )
db.stores.find( { $text: { $search: "and" } } )
Если у вас есть документ или ссылка об этом, дайте мне. Или, если этот вопрос существовал где-то еще, дайте мне тоже.
Спасибо!
Отредактировано: аналогичный вопрос имеет другой Отключить фильтрацию стоп-слов в текстовом поиске MongoDB