1

我想在我使用 Java 技术构建的 Web 应用程序中实现搜索功能。我必须根据用户查询搜索数据库并显示结果。我可以通过哪种方式进行此操作(请注意我使用的是 java 技术)??谢谢。

4

2 回答 2

5

您可以为此使用http://lucene.apache.org/core/http://lucene.apache.org/solr/之类的产品,而不是自己编写。

Lucene 是一个高性能的文档搜索引擎。SOLR 建立在 Lucene 之上并提供附加功能(如点击突出显示、分面搜索、数据库集成或富文档(Word、PDF、..)搜索)

Lucene 将分析您的文本数据并建立索引。执行搜索时,您针对该索引运行 lucene 查询。

于 2013-06-13T07:43:50.563 回答
0

假设您的意思是对数据库中的数据进行自由文本搜索...

对于自由文本搜索,Lucene 和/或 SOLR 是非常好的解决方案。这些通过在数据库中创建单独的数据索引来工作。您可以从数据库中提取数据并使用 Lucene/SOLR 对其进行索引,或者安排写入数据库的代码以更新 Lucene/SOLR 索引。鉴于您所说的,这听起来像是正在对现有数据库进行改造,因此提取数据并为其编制索引可能是最好的解决方案。在这种情况下,SOLR 可能更合适,因为它是一个打包的解决方案。

另一种选择是Hibernate Search。同样,如果您刚开始,这将是一个使用的解决方案。事后添加会更困难。

还要记住,除了普通的关系查询之外,一些数据库还支持自由文本搜索,值得一看。SQL Server 当然具有文本搜索功能,我想其他数据库也有某种支持。我不太确定您如何访问这些,但我希望能够通过 JDBC 使用 SQL 来完成它。不过,它可能是特定于数据库的。

如果您只是指普通的 SQL 搜索,那么这里有一大堆 Java EE 技术、纯 JDBC、Spring 模板、ORM 技术(JPA、JDO、Hibernate 等)。清单还在继续,如果没有更多信息,很难提出任何特定的方法。

于 2013-06-13T08:39:15.203 回答