2016-12-06 122 views
0

我正在爲我的網站創建搜索功能,並且我已經瞭解到MySQL從5.3版開始具有全文功能。對各種領域進行全文搜索是一種很好的做法嗎?

我做了一些研究,一些人聲稱全文搜索比LIKE搜索慢(這對我有意義)。我在做LIKE搜索,結果不是很棒。但是,通過全文搜索,我得到了更好的結果。

對於有很多文字的列,可以說,內容其中有5K字以上。做全文搜索是有意義的。但是,對列進行全文搜索是有意義的,比如first_name,last_name,它沒有太多文本。

當我在這些列上搜索(first_name,last_name)時,我正在搜索所有列中的每一個文本。比方說,搜索查詢是「ma meq」。當我搜索時,我在名字姓氏中使用搜索「ma」,對於meq也是如此。在全文搜索中,關鍵詞是更好的。

我創建這樣一個查詢:

select member_id FROM Members WHERE MATCH(Members.value) AGAINST ('ma meq*' IN BOOLEAN MODE) AND FIELD_ID IN(3,4) 

該查詢給了我不是像等價更好的結果:

select member_id FROM Members WHERE (value LIKE ma) AND field_id = 3 
select member_id FROM Members WHERE (value LIKE meq) AND field_id = 3 
select member_id FROM Members WHERE (value LIKE ma) AND field_id = 4 
select member_id FROM Members WHERE (value LIKE meq) AND field_id = 4 

。我想知道的是,這是一個很好的做法?即使列沒有太多文本,使用全文搜索是否有意義?

回答

0

一切都有用,但也有成本。全文搜索索引較大。但不知道你聽到哪裏比較慢。設計是否能夠處理大量的數據。

最後,您必須測試並確定成本是否值得改善性能。

相關問題