How to query Sphinx for an exact matching phrase?(如何在Sphinx中查询精确匹配的短语?)
本文介绍了如何在Sphinx中查询精确匹配的短语?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
看起来Sphinx正在逐字搜索文档。我不知道如何在文档中搜索准确的短语。我试了SPH_MATCH_ALL
,SPH_MATCH_PHRASE
,但都是逐字搜索文档。我正在我的PHP应用程序中使用它。
如何查询Sphinx以匹配准确的字符串?
以下是我的代码:
$sphinx = new SphinxClient();
$mode = SPH_MATCH_PHRASE;
$sphinx->setServer('127.0.0.1', 9312);
$sphinx->setLimits(0,1);
$sphinx->setMaxQueryTime(5000);
$sphinx->setMatchMode($mode);
$sphinx->setFieldWeights(array('name' => 100));
$sphinx->setArrayResult(true);
$result = $sphinx->query('Lorem ipsum dolor sit amet, consectetur adipiscing elit.');
print_r($result);
返回结果如下:
Array (
[error] =>
[warning] =>
[status] => 0
[fields] => Array (
[0] => name
[1] => company
[2] => image
[3] => price
)
[attrs] => Array ()
[total] => 0
[total_found] => 0
[time] => 0.000
[words] => Array (
[lorem] => Array (
[docs] => 0
[hits] => 0
)
[ipsum] => Array (
[docs] => 0
[hits] => 0
)
[dolor] => Array (
[docs] => 0
[hits] => 0
)
[sit] => Array (
[docs] => 0
[hits] => 0
)
[amet] => Array (
[docs] => 0
[hits] => 0
)
[consectetur] => Array (
[docs] => 0
[hits] => 0
)
[adipiscing] => Array (
[docs] => 0
[hits] => 0
)
[elit] => Array (
[docs] => 0
[hits] => 0
)
)
)
如您所见,Sphinx正在逐字搜索文档...
推荐答案
最佳方法是使用SPH_MATCH_EXTENDED2语法并将查询括在双引号中。
$sphinx->SetMatchMode(SPH_MATCH_EXTENDED2);
$sphinx->Query('"Lorem ipsum dolor"');
Extended syntax
这篇关于如何在Sphinx中查询精确匹配的短语?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在Sphinx中查询精确匹配的短语?
基础教程推荐
猜你喜欢
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 使用 PDO 转义列名 2021-01-01