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

时间:2014-02-10 08:18:11

标签: c++ c

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

我正在学习Unix网络编程。我把我的大学图书馆所有的书单都列在了分开的txt文件中。例如,'b'开始书籍存储在b.txt中。所有a-z书数约为100万条记录。一本书的名称和详细的其他信息。

现在我想做一个程序来提供图书清单的查询服务,例如,给一个书名,它可以返回这个bool的详细信息是否存在。

所以我需要先构建一个模块来获取查询功能。

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

我的问题是,如果我不使用数据库。如何使用c / c ++实现查询模块,只需首先找到第一个字母,例如,H开始书名应该在H.txtH1.txtH2.txt中找到,使用fopen打开文件,然后逐行阅读,然后使用strFindstrCmp类似函数与查询的书名进行比较,如果有,则返回结果。我只是认为这是一个耗时的事情,并没有意识到使用。如果有任何这样的查询系统可供参考,不使用数据库,但可以及时忍受?

2 个答案:

答案 0 :(得分:1)

有几种选择。最便宜的选择(=低开发时间,低维护,低硬件要求),IMO,是在一个链接到所有数据文件的单独站点上创建一个html页面。然后,您设置另一个使用google.com搜索该网站的页面。然后你只需告诉谷歌网络蜘蛛索引你的网站。这样,您可以通过最少的工作获得出色的性能但是......你没有对任何C进行编程。

使用C的简单解决方案:

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

使用C:

的中间解决方案

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

使用C:

的高级解决方案

实施您自己的搜索引擎。

答案 1 :(得分:0)

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

1。是否更容易部署?

sqlite可能是个不错的选择。

2。尝试另一种方法?

lucene是一个很好的信息检索选择,由ja​​va编写。

clucene是有人将lucene重写为c。

您可能还需要使用词干工具(获取单词的词根),ictclas(中文单词'term extract)等。

3。我想自己做点什么吗?

在系统中管理文本文件很容易,而对于“查询系统”,商店是不够的,主要问题是IR(信息检索)。 您可以了解有关索引构建,存储和查询索引的信息