sphinx如何多个关键字搜索,按照搜索关键字先后做权值排序


在系统当中,我需要搜索如“开心”关键字,我首先找到与开心相关的关键字比如:“愉快”、“快乐”、“微笑”、“陶醉”等等,对开心关键字进行扩充。

然后使用sphinx搜索的时候 ,用这些关键字来搜索(或的关系):


 “开心” -》“快乐” -》“愉快”-》“微笑”-》“陶醉” 等等

最后排序的时候,需要按照上面的关键字顺序来显示结果。

请问这种搜索排序方式用sphinx能做到吗?如果可以,要怎么做呢?

搜索 sphinx 搜索引擎

芽衣子·露 11 years ago

使用SPH_MATCH_BOOLEAN模式
$sphinx->SetMatchMode(SPH_MATCH_BOOLEAN);
$sphinx->query('开心 | 快乐 | 愉快 | 微笑 | 陶醉', '*');

排序的话可以使用
$sphinx->SetIndexWeights(array('开心'=>4096,'快乐'=>512, '愉快'=>64, '微笑'=>8, '愉快'=>1));

魔性触手姬 answered 10 years, 11 months ago

Your Answer