Я создал текстовый индекс на основе полей title
и main_body
в своей коллекции Mon go. Например, у меня есть статья с заголовком «Эбби Бенгтссон» и ее именем «Эбби», которая появляется в тексте статьи в main_body
.
. При выполнении запроса текстового поиска: {$text: {$search: 'abby bengtsson'}}
возвращает желаемое статья, а также еще пара.
Но простой запрос ее имени: {$text: {$search: 'abby'}}
ничего не возвращает.
Я пытался использовать Mon go Compass, Downloaded Studio 3T и использовать s sh и команды терминала на сервере напрямую.
Но я не понимаю, почему это происходит .. То же самое касается других ключевых слов в других статьях.
JSON Do c пример
{
"_id" : ObjectId("5e0f4ded35fbd16f21bf3655"),
"category" : {
"category_id" : "5010",
"slug" : {
"0010" : "profiler",
"0020" : "profiler",
"0030" : "profiler"
},
"label" : {
"0010" : "Profiler",
"0020" : "Profiler",
"0030" : "Profiler"
},
"bg_color" : "#B12CA6",
"txt_color" : "#ffffff",
"main_category_id" : "5000"
},
"featured_image" : {
"main" : "https://img.norrbom.com/article/5e0f4d5e35fbd16f21bf3653/78805a221a988e79ef3f42d7c5bfd418-1578061277668/abby.jpg",
"mobile" : "https://img.norrbom.com/article/5e0f4d5e35fbd16f21bf3653/78805a221a988e79ef3f42d7c5bfd418-1578061277668/abby.jpg",
"square" : "https://img.norrbom.com/article/5e0f4d5e35fbd16f21bf3653/78805a221a988e79ef3f42d7c5bfd418-1578061277668/abby.jpg"
},
"metadata" : {
"title" : "Abby Bengtsson",
"description" : "Hon sprudlar av energi och glädje, vilket smittar av sig på hela redaktionen när hon kliver in hos En Sueco. Med sig har hon sin ursöta följeslagare pomeranianen Melwin",
"og" : {
"title" : "Abby Bengtsson",
"description" : "Hon sprudlar av energi och glädje, vilket smittar av sig på hela redaktionen när hon kliver in hos En Sueco. Med sig har hon sin ursöta följeslagare pomeranianen Melwin",
"image" : "https://img.norrbom.com/article/5e0f4d5e35fbd16f21bf3653/78805a221a988e79ef3f42d7c5bfd418-1578061277668/abby.jpg",
"type" : "article",
"site_name" : "En Sueco",
"url" : "https://www.ensueco.com/profil-abby-bengtsson"
},
"twitter" : {
"title" : "Abby Bengtsson",
"description" : "Hon sprudlar av energi och glädje, vilket smittar av sig på hela redaktionen när hon kliver in hos En Sueco. Med sig har hon sin ursöta följeslagare pomeranianen Melwin",
"card" : "summary",
"image" : "https://img.norrbom.com/article/5e0f4d5e35fbd16f21bf3653/78805a221a988e79ef3f42d7c5bfd418-1578061277668/abby.jpg"
}
},
"tags" : [
],
"title" : "Abby Bengtsson",
"state" : NumberInt(1),
"created" : ISODate("2020-01-01T04:17:00.000+0000"),
"modified" : ISODate("2020-01-01T08:27:54.000+0000"),
"version" : NumberInt(19),
"featured" : false,
"language" : "sv",
"magazines" : [
],
"slug" : "profil-abby-bengtsson",
"published" : ISODate("2020-01-02T10:14:00.000+0000"),
"published_until" : null,
"author_alias" : "Text: Sara Laine, sara@norrbom.com Foto: Mugge Fischer, mugge@norrbom.com",
"main_body" : "... stringified JSON object with article ...",
"article_id" : ObjectId("5e0f4d5e35fbd16f21bf3653"),
"origin" : "cms",
"site" : "0020",
"__v" : NumberInt(0)
}
РЕДАКТИРОВАТЬ 18-01-2020
Я только что проверил что-то. Похоже, что эта проблема возникает только для документов, в которых для свойства language
установлено значение sv
(Swedi sh согласно MongoDB Language Documentation ). Если я изменю значение на da
(Dani sh), документ будет возвращен при поиске «Abby».
В настоящее время я решил свою проблему в работе, установив language_overwrite
в фиктивное поле, которое не существует .. Теперь все поля возвращаются, как они должны. Но то, что связано с языковым полем swedi sh, все еще смущает меня, поскольку это ТОЛЬКО когда я выбираю поле "sv" - и какой смысл иметь многоязычные документы и текстовый индекс, который предположительно должен возвращаться и поиск по локали, если он не работает для одной конкретной языковой переменной?