Datatables больших данных JSON с помощью «интеллектуального поиска», или на стороне сервера с помощью регулярных выражений, или лучший подход?

Я создаю это приложение для Библии с помощью Datatables.

Моя проблема в том, что данные большие. Всего около 500 МБ.
Это всего около 32 000 строк, но это абзацы текста с разметкой html / css.

Поиск должен быть «умным поиском» (частичное совпадение слов).

Похоже, есть 2 возможных варианта хранения данных:

  1. Я могу иметь данные жить в таблице MySQL. Я знаю, как реализовать обработку на стороне сервера, но я не знаю, как реализовать поиск по регулярным выражениям. Это было успешно сделано несколькими способами здесь: https://datatables.net/forums/discussion/3343/server-side-processing-and-regex-search-filter/p1 (Я не знаю достаточно PHP, чтобы понять, как).

  2. Я могу хранить данные в одном или нескольких файлах JSON. Затем попросите пользователя загрузить все данные в локальное хранилище. Затем выполните интеллектуальный поиск в Datatables. Я не уверен, что поиск будет хорошим, хотя. Я пробовал это в автономном режиме, загрузка только 50 МБ, и поиск уже довольно медленно. (Опять же, мои знания в области программирования очень ограничены).

Пожалуйста, посмотрите и не стесняйтесь направлять меня в правильном направлении 🙂

http://torah.byethost14.com/AdminLTE-master/pages/tables/_talmidimEdition.html

0

Решение

«Тяжелая разметка HTML / CSS»? Будете ли вы искать HTML-теги? Возможно нет. Так…

Есть еще один столбец, который представляет собой чистый текст — без разметки, без HTML, без CSS, даже с номерами стихов. (Номер книги должен быть в отдельных столбцах.)

Затем добавьте FULLTEXT индекс этого столбца чистого текста. Помните об ограничениях полного текста.

REGEXP работает медленно и всегда сканирует все строки в таблице.

Есть также несколько полнотекстовых поисковых систем, которые могут быть добавлены в MySQL. (У меня нет совета относительно того, применимы ли они к вашему приложению.)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]