使用Sphinx(Thinking Sphinx)或其他全文搜索引擎优先考虑以搜索词开头的字段

时间:2009-12-22 10:06:39

标签: ruby-on-rails full-text-search solr sphinx thinking-sphinx

我正在使用sphinx并思考sphinx搜索客户数据库。客户元数据(电子邮件,电子邮件等)分布在多个表格中,狮身人面像索引客户等所有笔记等。我遇到的问题是我希望在搜索中首先显示带搜索词的START字段。即搜索“hods”应按顺序返回结果:

  • 部门首长
  • The Hods
  • 霍德森
  • 方法

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

  • 短语的开头
  • 完整的单词
  • 开始说话

我试图通过复合搜索词实现这一目标(例如“^ hods | hods | hods * | * hods”)。

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

有什么想法吗?这可能与Sphinx有关吗?有可能的任何其他搜索解决方案吗?

3 个答案:

答案 0 :(得分:1)

Sphinx 1.10引入了新的ranking modeSPH_RANK_SPH04

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

答案 1 :(得分:0)

我从未使用过ThinkingSphinx,但我一直在Lucene / Solr使用boost query terms。在大多数搜索工具中应该有类似的机制。

答案 2 :(得分:0)

(e.g. "^hods | hods | hods* | *hods")

此查询不会对结果进行优先级排序。上面的查询只决定要获取的内容。

如果你必须优先考虑,你必须使用排名模式..或者可能排序模式。