Почему поиск по текстовому индексу не работает? - PullRequest
2 голосов
/ 22 января 2020

В моей коллекции есть два документа, например:

{ "_id" : ObjectId("5e284b9ab13f4efa7472ac71"), "someText" : "Hi what are you doing" }
{ "_id" : ObjectId("5e284b9ab13f4efa7472ac72"), "someText" : "HI there" }

Я создал текстовый индекс, например:

db.users.createIndex({someText: "text"});

, и при поиске, например,

db.users.find({$text: {$search: "Hi"}});

так как 'hi' в обоих документах, он возвращает оба, как ожидалось.

Но это не работает

db.users.find({$text: {$search: "there"}});

Я ожидаю, что он вернет второй документ, но это не так и количество равно 0. То же поведение, когда я ищу «что» или «делать».

1 Ответ

1 голос
/ 22 января 2020

there считается одним из стоп-слов , используемых MongoDB при построении полнотекстового поиска. Вы можете использовать

{ default_language: "none" }

, чтобы предотвратить их игнорирование при создании индекса ( docs )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...