2014-09-19 72 views
3

我正在研究一个应用程序,我们有不同类型的搜索。其中一些是全文搜索MYSQL数据库中的多个列,我使用Hibernate Search(它使用内部lucene)对于这些。何时使用Lucene/Hibernate搜索

现在我的问题是如何在不属于全text.A搜索形式的简单的数据库搜索时怎么办:

select * from table1,table2 where table1.col1='testval' and table1.col2=table2.col2; 

将这样的搜索会更好,如果我使用Hibernate Search的或会有对性能没有任何影响,因为这不是全文搜索

+0

顺便说一下,您应该可以将该SQL查询重写为“join”。 – 2014-09-19 20:33:41

+0

任何原因downvote? – 2014-09-20 20:25:29

+1

有一个愚蠢的downvoting负载,这里完全明智的问题。除了忽略它,你可以做的不多。我提出这个问题来抵消这种愚蠢。 – 2014-09-20 20:32:50

回答

4

使用Lucene/Hibernate Search您肯定会获得性能提升。原因是它将在本地维护一个索引,然后将其用于搜索,而不必查询数据库以检索结果,因此它将减少网络流量并减少数据库的负载。

当然,对于网络和数据库在轻负载下的简单应用程序,您不一定会注意到任何区别,但是当事情开始放大时,您会注意到。您可以做的越多,以避免不必要的数据库查询,越好。

+0

因此,如果我们计划扩展应用程序,让我们说大约一百万用户,通过主动搜索,你会建议做所有搜索Hibernate/Lucene的基础上,因为它会给我们在性能上的优势 – 2014-09-19 20:37:03

+0

@AbhishekRanjan Yup。 – 2014-09-19 20:48:27