我们需要一个搜索引擎在我们的产品目录管理软件集成。 目录预计将有超过4-5万。 与分布在多个表的关系数据记录。 我们的开发平台是Asp.Net 3.5,我们已经做了Lucene的预liminary工作,发现它是好的。 然而,我们刚刚才知道的Solr,并寻找一些实用的技巧,从实施时间表,定期维护,性能比较的Lucene Solr的&,功能的观点。 任何指导或指针会是很有益的。 谢谢。
Answer 1:
Lucene的:
Apache Lucene是一个高性能,全功能的文本搜索引擎完全用Java编写库。 它适用于几乎任何应用程序中的技术,需要全文搜索
Solr的:
Solr的是基于Lucene Java的搜索库的开源企业搜索服务器,使用XML / HTTP和JSON的API,命中突出,面搜索,缓存,复制,一个Web管理界面和...
从本质上讲,Lucene是嵌入在Solr的,是一个纯粹的全文检索库,被嵌入到给他们的全文搜索功能项目的目的。 Solr的有更多的功能和管理功能,使搜索结构化数据,而无需编写任何自定义代码,从CSV文件加载数据,用户输入,方位搜索宽容的分析,突出结果匹配文本和检索中的各种搜索结果格式(XML,JSON,...)。 检查Solr的功能页面 ,看看是否有功能相关的项目。
Answer 2:
我与安德鲁·克莱格同意。 我认为,当大量的Java开发类型看Lucene的VS Solr的,Lucene的看起来更友好的,因为它是一个仅仅是一个库(POJJ:普通Java罐),像任何其他图书馆,它看起来直截了当地嵌入,相对于复杂站在Solr的作为单独的过程,在复杂的HTTP通信。
但是,我认为,几乎所有的搜索使用的情况下,Solr的是正确的做法。 因为大多数的搜索复杂性不是直接的初步整合,但在调整搜索的模糊领域,扩展到满足需求,并保持你的指标,从开发者为中心的世界跨越到在系统世界之中。 和Solr处理所有的这些需求很好。
Answer 3:
像dcruz说,Solr的使用Lucene的,无论如何,所以它不是一个有效的比较。
Lucene是构建搜索应用程序的工具包,Solr的是Lucene的内置搜索应用程序。
IMO你一定是疯了不使用Solr的,因为它为您提供了大量的“管道”,你不得不自己写的,否则的-就像一个可配置的数据导入处理程序吸数据写出RDBMS或XML库。
再加上它为您提供了一个Web管理界面和其他花里胡哨。
Answer 4:
有一点要考虑的是这将是建立多么困难您的应用程序时,你混合这两种环境(Java / .NET)。 如果您使用Lucene.NET库,你可以限制你所需要的外部依赖安装它简化了部署。
另一个要考虑的是你需要的是Solr的是提供临时演员? (另)一个网页管理界面可能是伟大的,但它扩展了您的风险信封。 放下Java和其他服务意味着更多的补丁管理。 如果你坚持使用.NET只有你的补丁策略可以是标准的Windows更新模型。
当然,使用Lucene.NET将拥有自己的开发和维护成本滚动你的实现,但在我的经验,一直直线前进和易于使用。
Answer 5:
我们正是在同样的情况,你是。 不幸的是我没有直接参与评估过程,但最终我们要使用的Solr使用Lucene集成。
的主要优点是在各种格式如dcruz说明。 所以,你可以查询你的Solr的消费者和找回作为可以很容易地解析并在网页上显示XML数据搜索结果。
Answer 6:
让我改变你的重点了一下:你准备在你的产品架构的变化? 双方的Lucene和Solr是用Java实现。 所以,你最终会主办它运行另一个Web容器(因而将失去平台的纯度可以这么说)。 虽然Lucene的被移植到.NET( Lucene.NET项目 ),Solr的是不是就我知道的。 如果你碰巧使用SQL Server(这是有可能的,考虑到你的平台),你可能会考虑SQL Server全文搜索,而不是 - 它拥有几乎相同的功能,(没那么功能丰富的Lucene的/ Solr的,但无论如何),通常(在大多数情况下)更容易融入现有的应用程序。 除此之外,你从简化了维护和受益单一平台内保持,以及(它与你一起数据库来)。