对各种字段进行全文搜索是一种好习惯吗?

时间:2016-12-06 18:25:44

标签: mysql search

我正在为我的网站创建搜索功能,并且我已经了解到MySQL具有5.3版本的全文功能。

我做了一些研究,有些人声称全文搜索比LIKE搜索慢(这对我来说很有意义)。我正在做类似的搜索,结果并不令人敬畏。但是,通过全文搜索,我得到了更好的结果。

对于包含大量文本的列,可以说, content ,其中包含超过5K的单词。进行全文搜索是有意义的。但是,对列进行全文搜索是否有意义,请说first_namelast_name没有太多文字。?

当我喜欢搜索这些列(first_name,last_name)时,我正在搜索所有列中的每个文本。可以说,搜索查询是" ma meq"。当我搜索时,我使用搜索" ma"在 first_name last_name 中,对于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

。我想知道的是,这是一个好的做法吗?即使列没有太多文本,使用全文搜索是否有意义?

1 个答案:

答案 0 :(得分:0)

一切都有用,但也有成本。全文搜索索引更大。但不确定你听到的地方会变慢。设计是否适用于大量的数据。

最后,您必须测试并确定成本是否值得提高性能。