0

嘿伙计们,您知道一些技巧吗?如何优化更多完整匹配搜索?

我正在尝试优化的代码:

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

搜索应该搜索一些公司......假设在我的字段名称中:Google和在ort字段中我有new york

我想做一个查询,比如:纽约的谷歌中心,结果只给我纽约的所有谷歌中心!

我希望你明白我的意思!

4

3 回答 3

1

我想你应该看看

于 2009-12-22T19:32:54.143 回答
1

您的查询类型可能通过全文搜索NATURAL LANGUAGE MODE而不是BOOLEAN MODE.

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

于 2009-12-22T19:41:49.533 回答
1

使用相关性进行排序

$do = $this->select("*, MATCH(`name`,`ort`) AGAINST ('{$theString}') AS score")
      ->where('MATCH(`name`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $theString)
      ->order('premium DESC, score');
于 2009-12-22T19:47:15.893 回答