基于Lucene的数据库搜索引擎

时间:2010-06-03 07:17:32

标签: search solr lucene search-engine

我计划在我的网络应用程序中添加搜索功能。我正在为应用程序使用Struts 2框架,并且将在Relational数据库中对要搜索的项目进行处理。为了实现全文搜索引擎,我有以下疑问:

  1. 对于基于数据库的搜索引擎,我应该只使用lucene或其他基于Luncene的实用程序,如Solr,luSql,Compass等。
  2. 如果是Solr,可以将其嵌入到Web应用程序中,而不是将其部署为seaparate WAR。
  3. solr用于搜索关系数据库或仅搜索文件系统

3 个答案:

答案 0 :(得分:2)

看看hibernate搜索。我很确定它符合您的需求,因为存储在DB中的数据将被索引并因此可用于搜索。据我所知,Solr将索引存储在文件系统中(尽管可能有一个插件将索引存储在DB中)。

你也看看www.elasticsearch.com。它来自指南针的创造者。我认为罗盘的支持有限。

答案 1 :(得分:2)

  1. 取决于您想要操作的级别。由于您已经在Java应用程序中,因此使用Lucene API,索引数据然后再次使用它进行搜索非常容易。你可以用Solce做任何事情,你可以用Lucene做,但可能有更多的逻辑和胶水代码。

  2. 是的,请查看http://wiki.apache.org/solr/Solrj#EmbeddedSolrServer

答案 2 :(得分:0)

您说您的数据在数据库中,但您没有提到您是否使用ORM解决方案。如果你这样做,我也建议你看看Hibernate Search。 Hibernate是一项要求,但您可以使用经典会话或使用JPA。 Web应用程序的最大优势可能是您始终使用托管实体,而不必编写样板代码以转换为Lucene文档。 索尔也有自己的位置。这实际上取决于您的要求和架构。