与 MySql LIKE 相比,Sphinx 搜索 returns 更少的结果

Sphinx Search returns less result as compared to MySql LIKE

当我尝试简单的 MySql 查询时

select id 
from `contacts` 
where name LIKE '%abdul%'
OR email LIKE '%abdul%'
OR phone LIKE '%abdul%'

它 returns 我的数据库中有 278 条记录,当我像这样通过 Sphinx 搜索时

$sphinx = new SphinxClient();
$sphinx->setServer('localhost',9312);
$sphinx->setLimits(0,1000);
$sphinx->setMatchMode(SPH_MATCH_EXTENDED2);
$result = $sphinx->query('abdul','test1');

它returns只有112条记录。 有什么方法可以得到与 MySql 在 Sphinx 中查询相同的记录吗?

Sphinx 默认不进行通配符搜索。确保添加

min_infix_len=2

到您的索引配置,重建它然后尝试

$result = $sphinx->query('*abdul*','test1');

如果它没有帮助,您需要彻底检查不同的文档以了解根本原因,因为可能还有其他原因,因为 MySQL 中的 LIKE 只是进行基本的通配符搜索,而Sphinx 首先将您的文本标记化,构建倒排索引并将其用于搜索。比 LIKE 复杂得多的过程。