【发布时间】:2013-07-11 08:24:56
【问题描述】:
我已索引电影表中的以下列:movie_name、languages(作为文本)。我也有popularity 列作为属性 所以基本上一个示例记录看起来像:
movie_name: "The French Kiss"
languages: "English French"
我想要做的是搜索具有法语和英语语言的电影,根据相关性对它们进行排序(因此包含两种语言的电影将排名更高)然后是受欢迎程度。我正在使用 Thinking Sphinx gem,但基本上我的查询看起来像:
'@languages "French English"', order: "@relevance DESC, popularity DESC"
现在的问题是,语言和电影名称具有法语的电影排名较高,尽管它们的受欢迎程度较低。现在我明白这是因为电影文档中出现了两次“法语”,分别是电影名称和语言。
我尝试将排名算法更改为 bm25(不考虑关键字出现),但仍然返回相同的结果。
如何更改查询,以便它首先返回匹配“法语和英语”语言的电影,根据受欢迎程度排序,然后仅返回法语和仅英语。任何帮助,将不胜感激。谢谢!
【问题讨论】: