我在weightSphinx 遇到了一个奇怪的问题.仅在执行全文时name,结果将被准确加权.但是当它通过搜索扩展时address,计算出的重量是不正确的.
我正在使用 Sphinx 2.2.11
示例1:搜索名称会产生正确的结果
$cl->SetRankingMode(SPH_RANK_SPH04);
$cl->SetSortMode(SPH_SORT_EXTENDED, '@weight desc');
$cl->SetMatchMode(SPH_MATCH_EXTENDED2);
$res = $cl->Query('@name ("la" | "comedie" | "saint" | "michel")', 'idx_name');
Run Code Online (Sandbox Code Playgroud)
产量
Venue Name Address Weight
La Comédie Saint-Michel boulevard Saint-Michel 19620
La Comédie Saint-Michel - Small Hall boulevard Saint-Michel 18649
La Comédie Saint-Michel - Grande Salle boulevard Saint-Michel 18649
Run Code Online (Sandbox Code Playgroud)
要匹配的单词
[words] => Array
(
[la] => Array
(
[docs] => 26110
[hits] => 29358
)
[comedie] => Array
(
[docs] => 89
[hits] => 96
)
[saint] => Array
(
[docs] => 8820
[hits] => 10171
)
[michel] => Array
(
[docs] => 314
[hits] => 353
)
)
Run Code Online (Sandbox Code Playgroud)
示例2:搜索名称和地址的权重不正确
$cl->SetRankingMode(SPH_RANK_SPH04);
$cl->SetSortMode(SPH_SORT_EXTENDED, '@weight desc');
$cl->SetMatchMode(SPH_MATCH_EXTENDED2);
$res = $cl->Query('@name ("la" | "comedie" | "saint" | "michel")
@address ("boulevard" | "saint" | "michel")', 'idx_name');
Run Code Online (Sandbox Code Playgroud)
产量
Venue Name Address Weight
La Comédie Saint-Michel - Small Hall boulevard Saint-Michel 32631
La Comédie Saint-Michel - Grande Salle boulevard Saint-Michel 32631
La Comédie Saint-Michel boulevard Saint-Michel 32608
Run Code Online (Sandbox Code Playgroud)
要匹配的单词
[words] => Array
(
[la] => Array
(
[docs] => 26110
[hits] => 29358
)
[comedie] => Array
(
[docs] => 89
[hits] => 96
)
[saint] => Array
(
[docs] => 8820
[hits] => 10171
)
[michel] => Array
(
[docs] => 314
[hits] => 353
)
[boulevard] => Array
(
[docs] => 19735
[hits] => 19915
)
)
Run Code Online (Sandbox Code Playgroud)
在示例2中,第三记录应具有最高权重.预期的输出是最佳/完全匹配的.我尝试使用不同的排名模式,但没有运气.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |