C++ 如何实现基于网络的图书查询系统

C++ 如何实现基于网络的图书查询系统,c++,c,C++,C,请注意,如果我不想使用数据库 我现在正在学习Unix网络编程。我有我的大学图书库所有图书清单在单独的txt文件。例如,“b”begin books存储在b.txt中。所有的a-z图书数量都创下了100万册的记录。书名和其他详细信息的行 现在我想做一个程序来提供图书列表的查询服务,例如,给出一个书名,如果它存在,它可以返回这个图书的详细信息 因此,我需要首先构建一个模块来实现查询功能 然后编写服务器端调用查询模块,获取结果并将结果发送到客户端模块 我的问题是,如果我不使用数据库。如何使用c/c++

请注意,如果我不想使用数据库

我现在正在学习Unix网络编程。我有我的大学图书库所有图书清单在单独的txt文件。例如,“b”begin books存储在b.txt中。所有的a-z图书数量都创下了100万册的记录。书名和其他详细信息的行

现在我想做一个程序来提供图书列表的查询服务,例如,给出一个书名,如果它存在,它可以返回这个图书的详细信息

因此,我需要首先构建一个模块来实现查询功能

然后编写服务器端调用查询模块,获取结果并将结果发送到客户端模块


我的问题是,如果我不使用数据库。如何使用c/c++实现查询模块,只需首先定位第一个字母,例如,
H
开始书名应该在
H.txt
H1.txt
H2.txt
中找到,使用
fopen
打开文件,然后逐行读取,然后使用
strFind
与查询的书名进行比较,
strCmp
类似函数,如果有,则返回结果。我只是觉得这是一件很费时的事情,使用起来也不方便。如果有任何这样的查询系统可以不使用数据库,但在时间上是可以忍受的,那么有几种选择。IMO最便宜的选择(=低开发时间、低维护、低硬件要求)是在一个单独的站点上创建一个链接到所有数据文件的html页面。然后,您设置了另一个页面,使用google.com搜索该站点。然后你只需要告诉谷歌网络蜘蛛为你的网站建立索引。这样,您可以用最少的工作量获得优异的性能。但是你不能编写任何C语言程序

使用C的简单解决方案:

照你自己的建议去做。如果有大量内存可用于文件缓存,除非负载变高,否则性能不会太差。 解决方案的其余部分仍有一些工作要做,因为您应该将搜索委托给工作线程

使用C的中间溶液:

查找第三方搜索引擎并将其与您的网络代码集成

使用C的高级解决方案:


实现你自己的搜索引擎

问题是为什么不使用数据库

1.使部署更容易? 也许是个不错的选择

2.尝试另一种方法? lucene是一个很好的信息检索工具,它是由java编写的

有人把lucene改写成c

您可能还需要词干分析器工具(获取单词的词根)、ictclas(中文单词的术语提取)等

3.你想自己做点什么吗? 文本文件在系统中易于管理,而对于“查询系统”而言,存储是不够的,主要问题是信息检索(IR)。
你可能会学到一些关于建立索引、存储和查询索引的知识

你能用c解释一下这个简单的解决方案吗?现在我的水平是可以逐行读取文件并与关键字进行比较。特别是在“文件缓存”和“工作线程”中,你是说它是一个多线程的东西吗?如何在你的配置文件中查找@Lightness Races in Orbit?@user1279988文件缓存通常留给操作系统处理。如果这是学校作业,则作业应说明是否需要多线程解决方案。@Klas Lindbäck不,这不是学校作业。我是一名毕业的初级开发人员。但希望转到unix网络区域工作。所以我想在我读了一些书之后,做一些有意义的练习。然后我建议你专注于网络部分,从一个简单的搜索开始。你可以在网络部分完成后,用更高级的搜索来代替它。C还是C++?挑一个。请注意,“c/c++”不存在。