【问题标题】:Partial vs. Exact Matching in SphinxSphinx 中的部分匹配与精确匹配
【发布时间】: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 的形态?

标签: php sphinx


【解决方案1】:
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-03-02
  • 2016-01-12
  • 1970-01-01
  • 2016-06-23
  • 2012-04-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多