[英]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.