0

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

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

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

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

有人对如何提高搜索性能有任何意见吗?

4

1 回答 1

0

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

当有人在“位置”字段中键入时,您将向查询中添加一个子句,该子句仅将搜索到的文本与位置字段相匹配。

当有人在“描述”字段中键入内容时,您将向查询中添加一个子句,将搜索文本与描述字段相匹配。否则,您不会与描述字段匹配任何内容。

如果您不需要将文本输入到一个地方并为其搜索“所有可能的字段”,则此解决方案将防止额外的缓慢,直到有人特别想在描述文本中进行搜索。因此查询速度会根据搜索者的需求而有所不同。

于 2012-10-09T17:57:59.493 回答