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