@Wsearch

Как реализовать поиск определенных значений из заданных в CSV?

Всем привет!
Подскажите, куда копать и как реализовать необходимую форму.
Мне нужно встроить на вордпресс инструмент поиска. Просто окно, куда пользователи бы вводили номер. Расшифровка этих номеров у меня есть в CSV. Там все разбито по столбцам: значение, расшифровка. Данных очень много, более 100т+.
Как мне это сделать?. Я даже не знаю в каком направлении тут копать нужно.
  • Вопрос задан
  • 45 просмотров
Пригласить эксперта
Ответы на вопрос 3
Punkie
@Punkie
Копать в сторону импорта вашего csv в кастомную таблицу базы данных (можно в ту же базу, что и вордпресс) с дальнейшим самым обыкновенным SQL-запросом, приходящим с вашего фронтенда - так будет быстрее и удобнее всего.
Ответ написан
Комментировать
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Делается просто: на PHP без базы данных.

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

По шагам:
1. Все строки позиций артикула должны быть отсортированными по возрастанию номера артикула.
2. Нужно указать смещение в скрипте-парсере. Т.е. начинаем не с 0(или 1), а с цифры 12345, например.
3. При поиске - сразу переходим через смещение на середину файла 1/2 (от размера файла) и читаем первую строку с артикулом. Если он меньше, переходим на смещение 3/4, иначе - на 1/4.
Так мы находим нужную нам строку (с заданным артикулом) через половинное деление.
4. Также, можно заранее создать индекс-таблицу: номера артикулов и смещение от начала по количеству байт. Вдобавок, для скорости, можно создать глоссарий со смещениями по конкретным данным.

Использовать функции работы с файлами и fseek() для навигации указателя по смещениям.
Ответ написан
Комментировать
Noizefan
@Noizefan
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы