1

我正在使用 sphinx 和思维 sphinx 来搜索客户数据库。客户元数据(电子邮件、电话等)分布在多个表中,sphinx 索引客户等的所有注释。我遇到的问题是我希望以搜索词开头的文本字段首先显示在搜索中。即搜索“hods”应按以下顺序返回结果:

  • 霍德斯
  • 霍德一家
  • 霍德森
  • 方法

这意味着应该优先考虑(大致按此顺序):

  • 词组开头
  • 完成单词
  • 词的开头

我尝试使用复合搜索词来实现这一点(例如“^hods | hods | hods* | *hods”)。

这样的事情可以确保我找到所有合适的结果——但似乎不会影响它们的排名!!我在文档中也找不到任何有用的东西!!

有任何想法吗?狮身人面像有可能吗?任何其他可能的搜索解决方案?

4

3 回答 3

1

Sphinx 1.10 引入了新的排名模式SPH_RANK_SPH04.

您可以设置排名模式,thinking-sphinx尽管它的主页上没有记录。我现在不记得我是如何做到的,但它与设置其他搜索参数非常相似。

于 2010-07-22T14:06:11.897 回答
0
(e.g. "^hods | hods | hods* | *hods")

此查询不优先考虑结果。上面的查询只决定要获取什么。

如果您必须确定优先级,则可能必须使用排名模式..或排序模式。

于 2011-01-14T11:36:38.323 回答
0

我从未使用过 ThinkingSphinx,但我一直在 Lucene/Solr 中提升查询词。大多数搜索工具都应该有类似的机制。

于 2009-12-22T14:21:14.580 回答