【发布时间】:2014-08-12 00:12:20
【问题描述】:
我正在尝试设置一个简单的查询(从用户搜索中获取),以在当前简单的书名和作者表中查找结果。我只是将其用作测试,以稍微了解一下 Sphinx。
到目前为止,我的 PHP 是这样的:
$oSphinx->setFieldWeights(array('title' => 50, 'author' => 10));
$oSphinx->setMatchMode(SPH_MATCH_EXTENDED2);
$oSphinx->setSortMode(SPH_SORT_RELEVANCE);
$oSphinx->setRankingMode(SPH_RANK_SPH04);
$rMatches = $oSphinx->query('Sarah J. Maas');
我的最大中缀和字长是 3,所以我假设是“J”。出于搜索目的而从查询中删除。我的问题是返回了这两个结果:
莎拉·J·马斯特
莎拉·J·马斯
它们都具有相同的权重,并且它们在数据集中以该顺序出现,因此这是 Sphinx 返回它们的顺序。有没有办法在更模糊的匹配之上加权“精确”匹配?我知道有一个 exact_hit 修饰符,但这似乎在这里没有任何效果(无论如何它都包含在 SPH_RANK_SPH04 中)。我的期望是第二个会具有更高的权重,因为“Maas”匹配该结果中的完整单词而不是子字符串,但情况似乎并非如此。
我正在使用 Sphinx 2.0.4(Ubuntu 14.04 LTS 包)。
谢谢!
【问题讨论】:
-
您是否使用了任何可能将
Maaster变成Maas的形态?