php+sphinx+scws 中文无效英文有效
<?php
//我也搞不懂是怎么回事,直接上代码:
header("Content-type: text/html; charset=utf-8");
$b_time = microtime(true);
$key = trim(I("key"));
$index = "test1";
//========================================分词
$so = scws_new();
$so->set_charset('utf-8');
// //默认词库
$so->add_dict(ini_get('scws.default.fpath') . '/dict.utf8.xdb');
//自定义词库
// $so->add_dict('./dd.txt',SCWS_XDICT_TXT);
//默认规则
$so->set_rule(ini_get('scws.default.fpath') . '/rules.utf8.ini');
//设定分词返回结果时是否去除一些特殊的标点符号
$so->set_ignore(true);
//设定分词返回结果时是否复式分割,如“中国人”返回“中国+人+中国人”三个词。
// 按位异或的 1 | 2 | 4 | 8 分别表示: 短词 | 二元 | 主要单字 | 所有单字
//1,2,4,8 分别对应常量 SCWS_MULTI_SHORT SCWS_MULTI_DUALITY SCWS_MULTI_ZMAIN SCWS_MULTI_ZALL
$so->set_multi(false);
//设定是否将闲散文字自动以二字分词法聚合
$so->set_duality(false);
//设定搜索词
$so->send_text($key);
$words_array = $so->get_result();
$words1 = "";
foreach ($words_array as $v) {
$words1 = $words1 . '|(' . $v['word'] . ')';
}
//加入全词
$words1 = trim($words1, '|');
$so->close();
echo '<p>输入:' . $key . '</p>';
echo '<p>分词:' . $words1 . '</p>';
//========================================搜索
$sc = new SphinxClient();
$sc->SetServer('127.0.0.1', 9312);
$sc->SetMatchMode(SPH_MATCH_EXTENDED);
$sc->SetArrayResult(true);
$res = $sc->Query($words1, $index);
print_r($res);
$e_time = microtime(true);
$time = $e_time - $b_time;
print_r("总耗时:" . $time);
?>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论