Это лучшая схема mongodb для фильтрации совокупности слов? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть следующая схема данных в БД mongo, которая содержит корпус документов.

У меня есть 2 следующие коллекции:

  • Словарная коллекция, которая также включает в себя списокДокументы, где слово появляется.Это сделано для того, чтобы вы могли легко фильтровать совокупность текстов по выбору слов (на основе частоты, стоп-слов и т. Д.)

Словарь выглядит так:

{
    "_id" : "executive",
    "key" : 1,
    "doc_ids" : {
        "108" : {},
        "109" : {},
        "110" : {},
        "111" : {},
        "112" : {},
        "115" : {},...
},...
  • Коллекция документов хранится в виде пакета слов (каждое слово представлено в виде ключа: частотный кортеж)

Документ будет выглядеть так:

{
    "_id" : 108,
    "doc" : [ 
        [ 
            1, 
            1
        ], 
        [ 
            2, 
            1
        ], 
        [ 
            3, 
            1
        ],...
}

ПервоначальноЯ начал хранить список документов в коллекции словаря в виде таблицы, но, как указано в некоторых сообщениях (например, здесь ), растущие массивы дороги.Для меня это так, поскольку каждый раз, когда я обрабатываю новый документ, я добавляю его идентификатор к существующим словам в моем словаре.Вот почему я заменил этот массив вложенными пустыми вложенными документами.

Проблема в том, что он не повышает производительность при обновлении существующих слов.

Есть ли другой способ структурировать мои данные, чтобы обойти эту проблему?

Спасибо

...