改进全文搜索MYSQL

时间:2012-10-09 16:53:33

标签: php mysql full-text-search

我有一个基于搜索引擎的网站,目前处于测试版模式http://www.jobportfolio.co.uk。该站点具有包含以下字段的作业表(job_company,job_title,job_description,job_location),除了作为文本字段的描述之外,所有字段都是Var。所有字段都被编入索引为FullText。

我目前的方法是根据标题,位置和公司进行搜索。这似乎工作正常,但我想通过在描述字段中添加来改进搜索结果。问题是当我添加描述字段时,搜索似乎需要更长的时间。即使只有一个只包含12000行的表,它似乎也很慢。

我正在使用以下MATCH AGAINST查询来选择结果

MATCH(job_posts.job_title, job_company) AGAINST('".$this->mysqli_escape($job_title)."' IN BOOLEAN MODE) 

有没有人对如何提高搜索效果有任何意见?

1 个答案:

答案 0 :(得分:0)

嗯,我的第一个想法是从“外部”处理这个问题:有一个使用多个不同字段的搜索表单是否可以接受?如果你愿意有4个搜索字符串,每个搜索字符串都在不同的列中搜索,我怀疑这会自己减少负载。例如:

如果有人在“位置”字段中输入内容,则会向查询添加一个子句,该子句仅将搜索到的文本与位置字段匹配。

如果有人在“说明”字段中输入内容,则会在查询中添加一个子句,该子句与搜索文本相对应。否则,您与描述字段不匹配。

如果您不需要能够将文本输入到一个地方并搜索“所有可能的字段”,则此解决方案将防止特别想要在描述文本中搜索的人员。因此查询速度根据搜索者的需求而变化。