可扩展的自由文本&参数搜索(C#)

时间:2010-07-21 09:07:14

标签: .net sql-server lucene db4o freetext

目前,我们有一个应用程序需要在~2毫米记录上执行非常快速的搜索。

搜索需要搜索大的自由文本字段,以及不同范围之间的多个整数/十进制字段,以及各种函数/计算&排序

目前,我们正在使用大型MSSQL数据库处理此问题,使用内置的自由文本引擎,以及一些复制来从事务表中移除负载。

然而 - 正如您可能已经猜到的那样,这个解决方案并不是最具扩展性的。

我已经写了一篇基于Lucene的文档存储,结果给我留下了非常深刻的印象,文本搜索的时间不会超过1/2秒(在100k记录上)。

困难的部分是参数搜索 - 我知道Lucene做了基本的范围匹配 - 但是我觉得我们需要更强大的功能。

我使用db4o创建了一个小测试数据库 - 它具有强大的查询功能,但这些查询速度非常慢 - 仅在10万条记录上占用超过15秒 - 其中SQL需要大约1.5秒的freetext&参数搜索。

此外,我们的数据库需要具有不到10分钟的更新分辨率,大约15%的记录每天都在变化。我们的SQL服务器目前处理这个,但开始吱吱作响。

关于合适技术的任何指导&方法将不胜感激。

干杯, 戴夫

1 个答案:

答案 0 :(得分:0)

LinkedIn为Lucene写了一个名为bobo的附加组件,以扩展其可能值得研究的搜索查询。但是我认为如果你有一个绝对庞大的索引真的只需要bobo - 如果对100k文档的搜索花了这么长时间的话,肯定会有一些奇怪的事情发生。

相关问题