我正在为我的网站创建搜索功能,并且我已经了解到MySQL具有5.3版本的全文功能。
我做了一些研究,有些人声称全文搜索比LIKE搜索慢(这对我来说很有意义)。我正在做类似的搜索,结果并不令人敬畏。但是,通过全文搜索,我得到了更好的结果。
对于包含大量文本的列,可以说, content ,其中包含超过5K的单词。进行全文搜索是有意义的。但是,对列进行全文搜索是否有意义,请说first_name
,last_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
。我想知道的是,这是一个好的做法吗?即使列没有太多文本,使用全文搜索是否有意义?
答案 0 :(得分:0)
一切都有用,但也有成本。全文搜索索引更大。但不确定你听到的地方会变慢。设计是否适用于大量的数据。
最后,您必须测试并确定成本是否值得提高性能。