如何优化mysql完全匹配

时间:2009-12-22 19:25:27

标签: php zend-framework mysql zend-db-table

嘿伙计们,你知道如何优化更多全匹配搜索吗?

我正在尝试优化的代码:

$do = $this->select()
      ->where('MATCH(`name`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $theString)
      ->order('premium DESC');

搜索应该搜索一些公司......让我们说在名称字段中我有: Google 以及 ort 我有纽约

我想做一个像以下的查询:纽约的谷歌中心,结果只给我一些来自纽约的谷歌中心!

我希望你理解我的意思!

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

NATURAL LANGUAGE MODE而不是BOOLEAN MODE中的全文搜索可能会更好地匹配您的查询类型。

如果您在布尔模式下搜索“google center in new york”,您将找到所有这些关键字的所有匹配项,但不一定按此顺序匹配或匹配这些概念。

答案 2 :(得分:1)

使用相关性进行排序

$do = $this->select("*, MATCH(`name`,`ort`) AGAINST ('{$theString}') AS score")
      ->where('MATCH(`name`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $theString)
      ->order('premium DESC, score');