Mesuti
@Mesuti

Как сделать простой поиск по csv с несколькими сотнями тысяч строк без использования бд SQL?

Привет!
Уже несколько дней ищу примеры решений, но попадаются нерабочие ответы 2009-2011 годов.
Перебрал уже пару десятков решений - ни одно не рабочее


Как сделать простой поиск по csv файлу с сотнями тысяч строк без использования бд SQL?
Есть форма поиска на каждое поле и кнопка "Поиск"
Если есть совпадение по строке - показывает ее.

Пример формы:
5c03e420f22e2892812873.png
Разметка:
<form action="search-to-csv.php" id="search-csv">
        <input type="text" id="name" placeholder="Имя:">
        <input type="text" id="second-name" placeholder="Фамилия">
        <input type="text" id="third-name" placeholder="Отчество">
        <input type="text" id="year" placeholder="Год">
        <button>Поиск</button>
</form>

И сам base.csv файл с 200-500к строк.
Содержание типа:
name;second-name;third-name;year
Иван;Иванов;Иванович;1990
Петр;Петров;Петрович;1992
Сидр;Сидоров;Сидорович;1995
  • Вопрос задан
  • 291 просмотр
Пригласить эксперта
Ответы на вопрос 1
@stratosmi
Исходя из того, что это PHP и, скорее всего, на каждый http-запрос наверняка вы будете заново перезапускать ваш скрипт - каждый раз загружать данные и их индексировать не целесообразно.

Значит, вам нужны индексы на диски уже готовые.

Либо, если ресурсы (хорошие) и нагрузка (невысокая) позволяет - да, можно при каждом запросе читать этот самый весь файл построчно на предмет поиска совпадения.

но попадаются нерабочие ответы 2009-2011 годов.

Все эти вещи придуманы и написаны еще в 1970-е годы....
Зачем вам свежие ответы?

Можно взять за основу BerkleyDB, SQLite, LevelDB и пр. и пр.
Но это и будет СУБД, пусть даже оформленная в виде библиотеки.

Ну или вы сами напишите - и это все равно будет хоть примитивная, но СУБД.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы