我试图决定一个.Net项目的开源搜索/索引技术。似乎Java项目的标准是Lucene,但就.Net而言,Lucene.Net项目似乎非常不活跃。这仍然是最好的选择吗?或者还有其他可行的选择吗?什么是最好的和最活跃的开源.Net搜索技术?
回答
虽然他们还没有“完全成熟”发布(即完整的文档,网站更新)Lucene.Net相当长一段时间,仍然有新的提交到其SVN存储库。 例如最新版本(2.3.2)在07/24/09(see here)中被标记。 由于开发仍然活跃,我会将其用于新的全文搜索项目。
我有点认为这将是答案。然后是Lucene.Net。谢谢大家! – jamesaharvey 2009-08-26 14:46:02
看一看www.searcharoo.net。它有一个爬虫,并具有工作词干,索引办公文档/ PDF等功能。作者对codeproject文章非常积极,并且很快回答了问题。
由于lucene.net是一个端口,所以它必然会滞后于java。我也不喜欢lucene port是如何直接复制的,尽管它让我更容易理解文档。如果您不需要超紧凑(二元)集成,需要考虑的事项是使用Solr。我以前用它取得了很好的成功。它仍然支持Lucene,但我认为它更好,因为它具有更好的功能。您可以通过HTTP端点从.net使用它。
有一个问题要问自己,就是你在搜索解决方案中真正需要/想要的东西。实施搜索有很多方法,并不是所有的解决方案都适用于每种情况。
虽然它不是.NET我会建议使用Solr的作为建立在Lucene和将是简单的整合赋予了它返回的XML/HTTP和JSON
SQLite的有FTS3(全文搜索3)可能的事实做你想做的事。我没有直接的经验,但我相信它是明确开发来完成Lucene的工作,至少在简单的情况下。我不相信你可以改变标记器或任何东西(无论如何不修改源代码),但它是一个选项。
我们在我们的产品中使用SQLite FTS,对于我们的特定情况,它比Lucene.NET更好,更快。 – 2009-08-25 15:33:14
我知道这是不开源的,但它是一个免费非常全面从微软提供的:
Microsoft Search Server 2008 Express
外的the-盒子相关性。
本地化界面。
可扩展的搜索体验。
没有预设文件限制。
连续传播索引。
外的现成索引连接器
内容摘要。
突出显示。
最佳投注和定义。
查询更正。
重复折叠。
按属性筛选。
按语言筛选。
按日期排序。
电子邮件/ RSS提醒
据我了解,你需要“只是”一个全文索引现有的数据库,并为您在原则上的SQL Server全文搜索工作,但您当前的实施/设置过于缓慢。
如果我是你,我就不会去一个完全不同的方法(想想乱七八糟保持同步外部指标与您的数据库,或加入从两个等查询结果)。尝试解决SQL Server的性能问题,因为没有人会认真地假设用于搜索7k行的6秒是企业级解决方案的最后一个词,该解决方案用于某些最大的数据库...也许尝试提出一个新问题与此功能有关常见的陷阱(我不是这方面的专家),你可能最终得到一个简单的修复,而不是一个完整的重建搜索架构;)
如果你真的不坚持的.Net你可以给狮身人面像一试。开源并可用于所有平台(Windows/Linux)。
Lucene.net在NHibernate的实现,所以如果你也正在寻找一个O/R映射器,组合可能是值得更深入的检查。
目前,我们开发一个原型和配置Lucene是一堆分钟(我们使用功能NHibernate)来完成。
我也给nHibernate一个尝试。谢谢(你的)信息。 – jamesaharvey 2009-08-26 15:07:51
在几个项目中使用了Lucene.Net之后,我还想将编译Lucene的Java版本的建议添加到.net代码IKVM.NET中。它的工作原理非常奇妙,您不必担心Java版本的过时问题。您也可以选择编译所有额外的库并使用它们(我在一个项目中使用GIS搜索的东西)。
你有没有想过为此创建一个codeplex项目?也许设置一个定期构建 – Mikos 2010-07-15 21:54:32
+1这个明显的但容易被忽略的选项,给出Lucene.NET我还没有想过这个,您是否遇到过任何可能使非Java商店变得困难的障碍,或者您是否将IKVM用于大小如此平滑的项目? – 2010-07-16 07:11:08
@Mikos - 非常漂亮的想法;如果事实证明这对Lucene大小的项目来说是可行的,那么对于这种方法来说这可能是一个很好的优先选择 - 或者这种方法已经司空见惯了,而且我刚刚失踪了呢? – 2010-07-16 07:13:43
我曾经使用DotLucene但遇到了一些问题。一个重要的原因是它需要完全信任才能运行。
因为我已经搬到使用SearchAroo:http://www.searcharoo.net/
它采用了XML数据存储,而且我发现它的性能是非常相似点Lucene的。
,如果你正在寻找另一种选择,我肯定会看看。
- 1. 什么是MFC开发最活跃的社区资源?
- 2. 什么是最好的全文搜索开源项目(.NET首选)?
- 3. 什么是最好的技术材料的演示工具?
- 4. 什么是最好的Django syncdb死机调试技术?
- 5. 什么是最好的技术,这一形象
- 6. 使用界面最好的技术情况是什么?
- 7. 什么是用于索引文档和文本的好搜索技术
- 8. 这项技术的名称是什么开始搜索?
- 9. 什么是最好的,最有效的客户端池技术与Erlang
- 10. 在Android中开发布局的最佳技术是什么
- 11. 最好的网站/软件可视化最活跃的开源项目?
- 12. .NET中MSMQ的新技术是什么
- 13. 什么是替代EJB和EJB Timerservice的最佳技术?
- 14. 什么是绘制树木和图形的最佳技术?
- 15. 哪一个是搜索记录的最佳serach技术
- 16. 什么是最好的.NET unicode库?
- 17. 什么是最好的开源和最广泛使用的XML编辑器?
- 18. .Net 4.0最新的Web服务技术?
- 19. 最好的验证库技术
- 20. SaaS - 最好的技术选择
- 21. 最好的pdf压缩技术?
- 22. 最好的数据库/分类技术
- 23. PHP:最好的重定向技术
- 24. 什么是你最好的Swing设计模式和技巧?
- 25. 本网站用于路线搜索的技术是什么?
- 26. - 什么是最好的语言开始?
- 27. 什么是使用.net库自动执行任务的最佳技术?
- 28. 你见过的一些最好的开源项目是什么?
- 29. 可变高度与自定义背景图像 - 什么是最好的技术?
- 30. 使用Drupal创建在线目录,什么是最好的模块/技术?
+1:我对此非常感兴趣。我尝试着使用SQL Server的全文索引处理器。它可以很好地搜索诸如pdf,doc等二进制文件;但在搜索常规列时速度很慢。在我看来,6秒钟搜索7000行表是不可接受的。现在我只使用LIKE'value%'简单的搜索,它返回的速度非常快。 – NotMe 2009-08-11 01:47:55