ES千人千面推荐系统
借这个项目正好系统学习 ES 与 推荐算法
需求分析
整体架构
落地实现
- 导入 github 项目,爆红问题
Failure to transfer org.springframework.boot:spring-boot-starter-parent:pom:2.0.1.RELEASE from https... 问题是:依赖包下载不下来 解决办法: 在终端下进入项目所在的目录用mvn compile执行即可 或者点击pom.xml,右键,maven install 实在不行加上 -U 参数
ES 的学习
- match 与 term 的区别
- match 是进行分词后的 每个词匹配的 or - term 是不进行分词的 整词精确匹配, 这一点跟 keyword 很像 GET /movie/_search { "query":{ "match":{"title":"steve"} } } GET /movie/_search { "query":{ "term":{"title":"steve"} } } GET /movie/_analyze { "analyzer": "english", "field":"title", "text":"Frank Li" } analyzer:english / standard =》 默认标准分词解析器只是根据标点符号进行分词, english 可以去掉停用词 with of 这些,并小写 // or 可以改为 and GET /movie/_search { "query":{ "match":{ "title":{ "query":"basketball good solution available alien", "operator": "or" } } } } // 最少匹配分词后两个 GET /movie/_search { "query":{ "match":{ "title":{ "query":"basketball with good boy alien", "operator": "or", "minimum_should_match": 2 } } } } GET /movie/_search { "query": { "multi_match": { "query": "good boy man love basketball bad news", "fields": ["title", "overview"] } } }
极其重要的 TF 词频 - IDF 逆文档频率+ TF NORM 词频归一化
推荐系统
ALS => alternating least squares 交替最小二乘法
如果有来生,一个人去远行,看不同的风景,感受生命的活力。。。