用于索引/搜索我的数据的常用算法?

时间:2009-07-02 15:44:48

标签: search web indexing

我知道搜索本身就是一个巨大的领域,这似乎也是我的问题。我只是不知道从哪里开始。

以下是该方案: 我有很多商店,雇用了很多人,并有很多不同的产品待售。我需要为我的网站创建一个单文本域搜索选项。此文本字段应搜索商店的元数据(地址,名称等),产品的元数据(名称,类型等)以及员工。

我认为此搜索选项将在网站上广泛使用,因此它需要执行得非常好(每列中都没有查找,string.Contains()等。)。

目前我在想数据库中每个实体都有标签,这些标签指向商店/员工/产品,但我不确定这种数据复制是否易于维护。另一种选择是缓存流行的争议,然而,我不认为任何争议都会比其他人更受欢迎。

我确信我不是第一个遇到这种问题的人。是否存在任何常见策略,第三方库,第三方网站或仅仅提示我这样做?

提前致谢:)

2 个答案:

答案 0 :(得分:3)

你看过Lucene了吗?它是开源的,Java版本已经成熟。它可以极大地帮助您索引和搜索有组织的数据。我相信有.Net,C(带Perl / Ruby绑定)和Python的版本。

关于文档 - 对于Java版本,至少有一些书籍包括this one

我有很好的经验使用它来索引存储在数据库中的关系数据,以便可以以一种特殊的方式搜索它。但是,它也可以对基于文件的数据进行爬网和索引。

答案 1 :(得分:1)

您真的在寻找全文搜索引擎。根据teabot的推荐,Lucene是一个很好的工具。

基于Lucene(当然还有销售)的项目是DBSight,它提供了用于管理搜索结果的外观/格式的工具和界面,以及根据结果在Lucene中设置索引您自己定义的数据库查询。

我现在觉得自己好像。但我已经尝试过它并且效果很好。