基于用户点赞的弹性电影推荐



我的目标是建立电影推荐系统。

我有两种类型:

mymovies

样本文件:

{
    "_index": "mymovies",
    "_type": "mymovie",
    "_id": "1",
    "_score": 1,
    "_source": {
     "title" : "Funny title is here"
     "genre" : "Comedy"
     "movieViews" : 901142
    }
}

用户

样本文件:

{
  "Name" : "Doni de brun",
  "moviesLiked": [122,185,231,292,1]      
}

第一个问题:如何为用户的每部电影提取类型?

第二个问题:我读了很多关于聚合、重要术语和评分的文章,但我仍然有点困惑于何时使用什么。

我意识到建立一个高效的推荐系统取决于我的需求,但仍然:我应该提取流派,然后按流派和大多数电影视图进行搜索吗?或者可能对这种系统使用custom_coreing?

让我们首先回答您关于如何使用Elasticsearch的具体问题。

  1. 若要获取嵌套在索引字段内的数据,需要使用嵌套查询。在这种情况下,您的"genre"字段在一个隐藏文档中建立索引,如果不使用嵌套查询,您将无法访问该文档。它的工作原理与其他查询类型类似,因此应该很容易上手和使用
  2. 聚合是一种将搜索结果放入有用桶中的方法。每种类型的聚合都关注返回结果的不同方面,以创建这些bucket。对你来说,一个有效的用例是返回索引中的每一部电影,并使用聚合按类型、运行时、演员、评级等对电影进行聚类。我已经成功地将聚合作为过滤工具的一部分。用户点击其中一个返回的bucket,只看到其中的项目,过滤掉所有剩余的结果

最新更新