繁体   English   中英

使用Sphinx(Thinking Sphinx)或其他全文搜索引擎对以搜索词开头的字段进行优先排序

[英]Prioritize fields which start with search term using Sphinx (Thinking Sphinx) - or another full-text search engine

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

  • 霍兹
  • 霍德
  • 霍德森
  • 方法

这意味着应该确定优先级(大致按此顺序):

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

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

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

有任何想法吗? Sphinx有可能吗? 还有其他可能的搜索解决方案吗?

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

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

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

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

该查询不对结果进行优先级排序。 以上查询仅决定要获取的内容。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM