嘿伙计们,你知道如何优化更多全匹配搜索吗?
我正在尝试优化的代码:
$do = $this->select()
->where('MATCH(`name`,`ort`) AGAINST( ? IN BOOLEAN MODE)', $theString)
->order('premium DESC');
搜索应该搜索一些公司......让我们说在名称字段中我有: Google 以及 ort 我有纽约。
我想做一个像以下的查询:纽约的谷歌中心,结果只给我一些来自纽约的谷歌中心!
我希望你理解我的意思!
答案 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');