sol*_*dev 60 sql-server lucene.net
有没有人使用Lucene.NET而不是使用sql server附带的全文搜索?
如果是这样,我会对你如何实现它感兴趣.
您是否编写了一个每小时查询数据库的Windows服务,然后将结果保存到lucene.net索引?
Nic*_*ise 58
是的,我已经将它用于你正在描述的内容.我们有两个服务 - 一个用于读取,一个用于写入,但仅仅因为我们有多个读者.我确信我们可以用一个服务(作者)完成它,并将读者嵌入到Web应用程序和服务中.
我使用lucene.net作为一般的数据库索引器,所以我得到的基本上是数据库ID(索引的电子邮件消息),我也用它来获取足够的信息来填充搜索结果等等而不触及数据库.它在两种情况下都很有用,因为SQL可以变得有点慢,因为你几乎必须得到一个ID,选择一个ID等.我们通过创建一个临时表(只有ID行)来解决这个问题.从文件批量插入(这是lucene的输出)然后加入到消息表.更快了.
Lucene并不完美,你必须在关系数据库框之外思考一下,因为它完全不是一个,但它非常擅长它的作用.值得一看,而且,据我所知,没有"哎呀,抱歉,你需要再次重建你的索引"MS SQL的FTI所做的问题.
顺便说一句,我们处理了2千万至5千万封电子邮件(以及大约100万个独特的附件),我认为总共约有20GB的lucene索引,以及250 + GB的SQL数据库+附件.
性能太棒了,至少可以说 - 只要确保你考虑并调整你的合并因子(当它合并索引段时).拥有多个段没有问题,但是如果你尝试合并两个每个都有1mil项的段,并且你有一个观察者线程,如果它需要太长时间就会终止这个过程,那么可能会有一个大问题... ..(是的,这踢了我们的屁股一段时间).因此,保持每个东西的最大文件数量为低(即,不要像我们那样将其设置为最大值!)
编辑Corey Trager在此记录了如何在BugTracker.NET中使用Lucene.NET .
归档时间: |
|
查看次数: |
24363 次 |
最近记录: |