mysql - sphinx查询 "中国" 时也能查询到 "中华人民共和国"
怪我咯
怪我咯 2017-04-17 14:46:44
[MySQL讨论组]

sphinx初学者,有个疑问,之前没学sphinx的时候以为:
查询 "中国" 时也能查询到 "中华人民共和国"
查询 "大姨妈" 时也能查询到 "例假"
查询 "苹果" 时也能查询到 "iPhone"
类似这样的还有很多,网上没有找到相关的文章,不知该搜索什么关键词,所以在这里请教诸位,谢谢咯~~~
如果支持,希望提供思路或操作步骤

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
伊谢尔伦

据我了解是不行的,因为sphinx是检索引擎+coreseek是中文分词功能,应该不具备这样的功能。

在sphinx.conf配置文件里也没看到相关,所以如果想要你所说的功能,应该是用其他的插件。

如果是纯粹提供一个思路的话:
我们搜索出来的结果都不是直接展示出来的,而是要通过一个权重判断(增加权重字段),例如与中国相关的这些词中,权重最高的是中华人民共和国。其他词语也是一样,这样子应该能完成你想要得效果,纯粹mysql实现还比较容易,但在sphinx中比较难,因为它检索的逻辑都定死的。

怪我咯

想多了。sphinx只是根据关键词检索。近义词和相关词都是手动设计和智能机器学习来的。

PHPz

这个叫搜索重写,最简单的方式是做一个别名表,先分词 -> 取别名 -> 归一化 -> 交给sphinx 查询。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号