root: {
dir: {
subDir: {
subSubDir: {
...
},
...
},
subDir_2: {
...
}
},
dir_2: {
...
},
...
}
Мне нужно выполнить поиск в dir
и все эти потомок, или в subDir
и всех эти потомок и т.д. ... я буду немного изменения данных довольно часто (в 10-100 раз в день), включая узлы переименования (dir
до directory
или что-то еще). Объем данных может составлять от 1 МБ до сотен МБ и может быть даже около 1 ГБ, количество узлов может быть бесконечным, но в среднем до 10 тыс. Я думаю. Глубина гнездования будет, вероятно, до 20.Какая база данных может выполнять полнотекстовый поиск внутри вложенных «каталогов», например файловых систем?
Архитектура может быть изменена, но идея представления «как каталогов» должна быть там.
Я думал об этой альтернативе:
{
[guid]: {title, text, path etc},
[guid]: {title, text, path etc},
[guid]: {title, text, path etc},
[guid]: {title, text, path etc},
[guid]: {title, text, path etc},
}
Это может быть реализовано в базе данных SQL, а также, но в случае переименования узла я должен буду изменить path
свойство в каждом узле (сырье), которые могли бы быть чрезвычайно дорогим.
Я считаю, что postgres имеет встроенный JSON и полнотекстовый поиск – NinjaGaiden
Да, также ES имеет его, у mongodb есть и т. Д. Однако я до сих пор не вижу, как реализовать полнотекстовый поиск с данными условиями, которые описаны выше. – stkvtflw
Если вы храните это как нормализованные иерархические данные, это довольно просто сделать с рекурсивным SQL-запросом в реляционной базе данных. –