MongoDB поиск документа по языку - PullRequest
0 голосов
/ 30 августа 2018

Я новичок в универсальном MongoDB, и я хочу создать таблицу под названием "фильмы".
Данные этой таблицы не будут постоянно меняться, но будут читаться много раз.
Моя структура такая:

{
    "title" : "Hunger Games",
    "language" : "french",
    "summary" : "...",
    "translation": [
        {
            "language" : "english",
            "quote" : "aaaaa"
        },
        {
            "language" : "spanish",
            "quote" : "bbbbb"
        }
    ],
    "episodes" : [
        {
            "title" : "Hunger Games",
            "language" : "english",
            "summary" : "ccccc",
            "translation": [
                {
                    "language" : "french",
                    "quote" : "ddddd"
                },
                {
                    "language" : "spanish",
                    "quote" : "eeeee"
                }
            ],
            "release_date" : "1977-05-25T00:00:00Z",
            "running_time" : 7260,
            "year" : 1977,
            "authors" : [
                {
                    "name" : "Gary Ross"
                }
            ],
            "actors" : [
                {
                    "name" : "Jennifer Lawrence"
                }
            ],
            "maturaty" : 13
        }
    ],
    "genre" : ["Sci-Fi", "..."]
}

индексы:

db.films.createIndex({
    title: "text",
    summary: "text",
    "translation.quote": "text",
    "episodes.title": "text",
    "episodes.summary": "text",
    "episodes.translation.quote": "text",
    "episodes.authors.name": "text",
    "episodes.actors.name": "text",
    "genre": "text",
    "episodes.release_date": 1
}, { default_language: "french", name: "IDX_Films" }
)

Когда я пытаюсь найти слово, например, "aaaaa" на французском языке, оно не возвращает результат, но на английском и испанском языках оно показывает, если я ищу "bbbbb", на каждом языке оно возвращает результат, то же самое для "ccccc" и "ddddd", но "eeeee" не возвращается по-французски.
У вас есть какое-нибудь решение, чтобы оно работало? Или вы знаете какой-либо поисковик, который отлично работает с MongoDB? Я знаю, что Elasticsearch - хорошая поисковая система, но я не знаю, будет ли это в моем случае.

Код:

db.films.find({$text: {$search: "aaaaa", $language: "english"}})

Спасибо
0ddlyoko

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