Sphinx搜索/思考关联模型的Sphinx摘录 问题1

Sphinx搜索/思考关联模型的Sphinx摘录 问题1,sphinx,thinking-sphinx,Sphinx,Thinking Sphinx,我有一个具有多个关联的模型,我在索引配置中创建了关联模型的提要,例如,人是主模型,这有索引的关联-例如就业职位、文档、面试等 因此,我真的想确定sphinx搜索用于获得结果的内容,以便我可以在主模型或关联模型上使用摘录 因此,如果我有10个文档附加到一个人身上,并且我使用“Java”之类的搜索词,我希望能够检测出哪个关联模型具有最高排名的匹配/或者发现哪个关联模型是匹配的基础 问题2 我也有点困惑——当斯芬克斯使用摘录时,如果搜索使用了一个字段,例如@person\u job\u title“j

我有一个具有多个关联的模型,我在索引配置中创建了关联模型的提要,例如,人是主模型,这有索引的关联-例如就业职位、文档、面试等

因此,我真的想确定sphinx搜索用于获得结果的内容,以便我可以在主模型或关联模型上使用摘录

因此,如果我有10个文档附加到一个人身上,并且我使用“Java”之类的搜索词,我希望能够检测出哪个关联模型具有最高排名的匹配/或者发现哪个关联模型是匹配的基础

问题2 我也有点困惑——当斯芬克斯使用摘录时,如果搜索使用了一个字段,例如@person\u job\u title“java”,摘录不会突出显示搜索词


我怀疑其他人也面临着同样的问题,有人有办法解决吗?

关于你的第一个问题:Sphinx没有提供任何关于哪些字段与搜索关键字匹配的信息——虽然Sphinx认为Sphinx了解关联,但Sphinx没有,因此没有其他方式来收集此类数据。我认为更好的方法可能是为每个模型使用单独的Sphinx索引,然后您可以在所有这些模型上运行搜索,并获得更明显的匹配答案

至于第二个问题:我不确定这是一个bug,还是Sphinx的一个明确问题……如果你能够分享你的完整搜索调用和视图中的摘录,这将有助于调试

如果字段名恰好来自您的代码(而不是用户提供的),您可以尝试使用单独的摘录程序,看看是否可以获得更好的结果:

# e.g. if params[:query] is just "java", and you've got params[:field]
# or similar providing "@person_job_title"
excerpter = ThinkingSphinx::Excerpter.new 'article_core', params[:query]
excerpter.excerpt! result.person.job_title