Обратите внимание, что если я не хочу использовать базу данных.
Теперь я изучаю сетевое программирование Unix. И у меня есть библиотека университетских книг, в которой хранятся все списки книг в разделенных файлах txt. например, начальные книги "b" хранятся в b.txt. все az количество книг составляет около 1 миллиона записей. строка для названия книги и подробная другая информация.
Теперь я хочу сделать программу для предоставления услуги запроса списка книг, например, давая имя книги, она может вернуть подробную информацию об этом bool, существует ли она.
Поэтому мне нужно сначала создать модуль для выполнения функции запроса.
Затем запишите серверную сторону, чтобы вызвать модуль запроса, и получить результат и отправить результат в клиентский модуль.
Мой вопрос: если я не использую базу данных. Как реализовать модуль запроса с помощью c/c++, просто сначала найдя первую букву, например, имя H.txt
книги H
должно найти в H.txt
или H1.txt
и H2.txt
, используя fopen
откройте файл, затем прочитайте line by line, затем сравните с запрошенным именем книги, используя strFind
strCmp
аналогичную функцию strCmp
, если затем вернуть результат. я просто думаю, что это трудоемкая вещь и не понимает, что использовать. И если какая-либо такая система запросов могла бы ссылаться на не использующую базу данных, но была бы терпимой во времени?
Существует несколько вариантов. Самый дешевый вариант (= низкое время разработки, низкое обслуживание, низкие требования к оборудованию), IMO, заключается в создании html-страницы на отдельном сайте, который ссылается на все файлы данных. Затем вы настраиваете другую страницу, которая использует google.com для поиска этого сайта. Затем вы просто скажите веб-пауку google, чтобы индексировать ваш сайт. Таким образом, вы получаете отличную производительность с минимальной работой. Но... вы не можете запрограммировать любую C.
Простое решение с использованием C:
Делайте, как вы сами предлагаете. Если у вас много памяти для кеширования файлов, производительность не будет такой плохой, если загрузка не будет высокой. Все остальное будет по-прежнему работать с остальной частью решения, поскольку вы должны делегировать поиск рабочим потокам.
Промежуточный раствор с использованием C:
Найдите стороннюю поисковую систему и интегрируйте ее с сетевым кодом.
Расширенное решение с использованием C:
Внедрите свою собственную поисковую систему.
Проблема заключается в том, почему НЕ ХОТИТЕ ИСПОЛЬЗОВАТЬ БАЗА ДАННЫХ?
sqlite может быть хорошим выбором.
lucene - хороший выбор для поиска информации, который написан java.
clucene - кто-то переписывает lucene к c.
Вам также может понадобиться инструмент стэммера (получить корень слов), ictclas (выдержка терминов китайских слов) и т.д.
Легко управлять текстовым файлом в системе, в то время как для "системы запросов" хранилища недостаточно, основной проблемой является IR (поиск информации). Вы можете узнать что-то о построении индекса, сохранить и запросить индекс