Я создал таблицу с различными столбцами для фильтрации, такими как id, date и regex_col в приведенных ниже примерах. Цель этой базы данных - дать пользователю возможность соответствующим образом фильтровать искомую json_b_value. Текущая база данных не очень большая, около ~ 100 млн. Строк.
Я взял имена строк из json_b_value, чтобы создать regex_col с мыслительным процессом, которым я могу каким-то образом индексировать regex_col и позволить пользователям выполнять поиск регулярных выражений. для json_b_value они ищут. Текст в regex_col хранится в виде большой строки, разделенной запятыми, с количеством слов в диапазоне от 10 до 150.
id | date | regex_col | json_b_value
1 2019 'some','stuff','to','search' json
2 2018 'different','stuff','other' json
3 2019 'lots','of','stuff' json
Пользователь будет взаимодействовать и искать в этом столбце с помощью выбора. js раскрывающийся список , Отдельная таблица берет все слова, разделенные запятыми, из regex_col и связывает их все вместе по очереди, как показано ниже. Тогда слова, соответствующие их поиску, будут заполняться по мере их ввода, любые слова, не соответствующие ничему, приведут к нулю.
search_words |
'some'
'stuff'
'to'
'search'
Каким будет эффективный способ индексирования regex_col? Это оптимальный способ сделать это, если я даже создаю regex_col или я пытаюсь оптимизировать его вокруг json_b_value?
пример значения json для идентификатора 1 ниже
[{"regex_col":"some","current":100,"previous":200},{"regex_col":"stuff","current":200,"previous":400},{"regex_col":"to","current":300,"previous":600},{"regex_col":"search","current":400,"previous":800}]