2014-09-19 113 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

相關問題