Текстовый указатель не возвращает результаты в зависимости от языка - PullRequest
0 голосов
/ 06 июля 2019

Я создаю коллекцию ссылок. Каждый документ имеет язык поля. Когда я пытаюсь выполнить поиск, полнотекстовый поиск не работает в зависимости от языка.

Я пытаюсь использовать "it" / "en" и "italian / english" (https://docs.mongodb.com/manual/reference/text-search-languages/#text-search-languages) Я пытаюсь использовать language_override (https://docs.mongodb.com/manual/tutorial/specify-language-for-text-index/#create-a-text-index-for-a-collection-in-multiple-languages)

use search

//Insert some data
db.links.insert({"language": "it", "content": "quando cammino ho male al ginocchio"})
db.links.insert({"language": "it", "content": "ho male alle ginocchia"})
db.links.insert({"language": "en", "content": "A lot of pain knee"})

//Create index
db.links.createIndex({content: "text"})

//Test search but with empty result
db.search.find({$text: {$search: "ginocchia"}})
//I try default english works
db.links.find({$text: {$search: "knee"}})

//So I drop indexes and try language_override
db.links.dropIndexes()
db.search.createIndex({content: "text"}, {language_override: "language"})

//Test search but with empty result
db.search.find({$text: {$search: "ginocchia"}})
//I try default english works
db.links.find({$text: {$search: "knee"}})

//If I set default_language in "it" working in italian and not in english.

Я полагаю, что если я вставлю "ginocchia", получу первые два документа, если я вставлю "колено", получим последний.

1 Ответ

0 голосов
/ 11 июля 2019

Я также использую $ language в find, и теперь он работает

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