{"id":18972083,"url":"https://github.com/hongzhaohua/jstarcraft-example","last_synced_at":"2026-02-26T18:08:07.708Z","repository":{"id":47647734,"uuid":"188232042","full_name":"HongZhaoHua/jstarcraft-example","owner":"HongZhaoHua","description":"基于JStarCraft RNS引擎,Spring Boot框架和公共数据集搭建的千人千面演示项目.   系统会根据用户的行为记录,自动调整用户的推荐内容和搜索内容.使用者可以通过该项目了解*推荐系统*与*搜索系统*的运作流程.   涵盖了个性化推荐与个性化搜索2个部分.","archived":false,"fork":false,"pushed_at":"2024-08-26T17:12:15.000Z","size":34695,"stargazers_count":164,"open_issues_count":1,"forks_count":55,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-05-20T09:03:41.885Z","etag":null,"topics":["personalized","recommend","search","spring"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HongZhaoHua.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-05-23T12:42:21.000Z","updated_at":"2024-12-26T09:06:01.000Z","dependencies_parsed_at":"2024-11-23T09:02:13.397Z","dependency_job_id":"64e5ac2f-b267-4654-ae2f-a094ac326af6","html_url":"https://github.com/HongZhaoHua/jstarcraft-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/HongZhaoHua/jstarcraft-example","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HongZhaoHua%2Fjstarcraft-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HongZhaoHua%2Fjstarcraft-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HongZhaoHua%2Fjstarcraft-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HongZhaoHua%2Fjstarcraft-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HongZhaoHua","download_url":"https://codeload.github.com/HongZhaoHua/jstarcraft-example/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HongZhaoHua%2Fjstarcraft-example/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29867169,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-26T16:38:37.846Z","status":"ssl_error","status_checked_at":"2026-02-26T16:37:58.932Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["personalized","recommend","search","spring"],"created_at":"2024-11-08T15:06:41.898Z","updated_at":"2026-02-26T18:08:07.687Z","avatar_url":"https://github.com/HongZhaoHua.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JStarCraft Example\r\n\r\n****\r\n\r\n[![License](https://img.shields.io/badge/license-Apache%202-4EB1BA.svg)](https://www.apache.org/licenses/LICENSE-2.0.html)\r\n[![Total lines](https://tokei.rs/b1/github/HongZhaoHua/jstarcraft-example?category=lines)](https://tokei.rs/b1/github/HongZhaoHua/jstarcraft-example?category=lines)\r\n\r\n希望路过的同学,顺手给JStarCraft框架点个Star,算是对作者的一种鼓励吧!\r\n\r\n## 目录\r\n\r\n* [介绍](#介绍)\r\n* [特性](#特性)\r\n    * [个性化模型](#个性化模型)\r\n* [安装](#安装)\r\n    * [安装JStarCraft Core框架](#安装JStarCraft-Core框架)\r\n    * [安装JStarCraft AI框架](#安装JStarCraft-AI框架)\r\n    * [安装JStarCraft RNS引擎](#安装JStarCraft-RNS引擎)\r\n    * [打包JStarCraft Example项目](#打包JStarCraft-Example项目)\r\n* [使用](#使用)\r\n    * [运行JStarCraft Example项目](#运行JStarCraft-Example项目)\r\n    * [电影的个性化推荐与搜索](#电影的个性化推荐与搜索)\r\n    * [根据行为记录自动调整模型](#根据行为记录自动调整模型)\r\n* [架构](#架构)\r\n* [概念](#概念)\r\n* [示例](#示例)\r\n    * [词项查询](#词项查询)\r\n    * [范围查询](#范围查询)\r\n    * [通配符查询](#通配符查询)\r\n    * [模糊查询](#模糊查询)\r\n    * [组合查询](#组合查询)\r\n* [对比](#对比)\r\n* [版本](#版本)\r\n* [参考](#参考)\r\n* [协议](#协议)\r\n* [作者](#作者)\r\n* [致谢](#致谢)\r\n\r\n****\r\n\r\n## 介绍\r\n\r\nJStarCraft Example是一个基于[JStarCraft RNS引擎](https://github.com/HongZhaoHua/jstarcraft-rns)引擎,Spring Boot框架和公共数据集搭建的千人千面演示项目.\r\n\r\n系统会根据用户的行为记录,自动调整用户的推荐内容和搜索内容.使用者可以通过该项目了解**推荐系统**与**搜索系统**的运作流程.\r\n\r\n涵盖了个性化推荐与个性化搜索2个部分.\r\n\r\n****\r\n\r\n## 特性\r\n\r\n#### 个性化模型\r\n\r\n本演示项目使用了以下8中个性化模型:\r\n* AssociationRule\r\n* MostPopular\r\n* Random\r\n* BPR\r\n* ItemKNN\r\n* LDA\r\n* UserKNN\r\n* WRMF\r\n\r\n[点击了解更多的个性化模型](https://github.com/HongZhaoHua/jstarcraft-rns#%E4%B8%AA%E6%80%A7%E5%8C%96%E6%A8%A1%E5%9E%8B)\r\n\r\n****\r\n\r\n## 安装\r\n\r\n项目为了尽可能聚焦于个性化推荐和个性化搜索的演示,不包含任何多余组件的部署(例如MySQL/Redis/Spark/Elasticsearch).\r\n\r\nJStarCraft Examlpe要求使用者具备以下环境:\r\n* JDK 8或者以上\r\n* Maven 3\r\n\r\n#### 安装JStarCraft-Core框架\r\n\r\n```shell\r\ngit clone https://github.com/HongZhaoHua/jstarcraft-core.git\r\n\r\nmvn install -Dmaven.test.skip=true\r\n```\r\n\r\n#### 安装JStarCraft-AI框架\r\n\r\n```shell\r\ngit clone https://github.com/HongZhaoHua/jstarcraft-ai.git\r\n\r\nmvn install -Dmaven.test.skip=true\r\n```\r\n\r\n####  安装JStarCraft-RNS引擎\r\n\r\n```shell\r\ngit clone https://github.com/HongZhaoHua/jstarcraft-rns.git\r\n\r\nmvn install -Dmaven.test.skip=true\r\n```\r\n\r\n#### 打包JStarCraft-Example项目\r\n\r\n```shell\r\ngit clone https://github.com/HongZhaoHua/jstarcraft-example.git\r\n\r\nmvn package -Dmaven.test.skip=true\r\n```\r\n\r\n****\r\n\r\n## 使用\r\n\r\n#### 运行JStarCraft-Example项目\r\n\r\n```shell\r\njava -jar jstarcraft-example-1.0.jar\r\n```\r\n\r\n#### 电影的个性化推荐与搜索\r\n\r\n1. 复制链接[http://127.0.0.1:8080/movie.html](http://127.0.0.1:8080/movie.html)到浏览器.\r\n2. 选择用户\r\n3. 选择模型\r\n4. 填写查询条件\r\n5. 选择是否过滤(已评价的条目)\r\n    - 选择是,则相当于个性化推荐\r\n    - 选择否,则相当于个性化搜索\r\n6. 点击个性化\r\n\r\n个性化效果如图所示:\r\n![movie](https://github.com/HongZhaoHua/jstarcraft-example/blob/master/movie.png)\r\n\r\n#### 根据行为记录自动调整模型\r\n\r\n用户可以通过点击`评价:1 2 3 4 5`对应的分数给条目打分,系统每隔5分钟会自动刷新模型.\r\n\r\n****\r\n\r\n## 架构\r\n\r\n****\r\n\r\n## 概念\r\n\r\n#### 推荐与搜索的本质\r\n\r\n****\r\n\r\n## 示例\r\n\r\n#### 词项查询\r\n\r\n支持单词和语句:\r\n- 单词\r\n- 语句(使用双引号`\"\"`包括)\r\n\r\n```\r\nStory\r\n\"Toy Story\"\r\n```\r\n\r\n#### 范围查询\r\n\r\n支持指定最小值和最大值:\r\n- {}尖括号表示不包含最小值或最大值\r\n- []方括号表示包含最小值或最大值\r\n\r\n```\r\n[1990,2000}\r\n```\r\n\r\n#### 通配符查询\r\n\r\n支持在单词或者语句中结合通配符:\r\n- 使用`?`匹配单个字符\r\n- 使用`*`匹配0个或多个字符\r\n\r\n```\r\nte?t\r\nte*t\r\n```\r\n\r\n#### 模糊查询\r\n\r\n```\r\ntest~\r\n```\r\n\r\n#### 组合查询\r\n\r\n支持多种逻辑操作符:\r\n- 使用`\u0026\u0026`实现交集操作\r\n- 使用`||`实现并集操作\r\n- 使用`!`实现差集操作\r\n- 使用`()`实现分组操作,形成更为复杂的逻辑查询\r\n\r\n```\r\n1990 || (Toy \u0026\u0026 Story)\r\n```\r\n\r\n****\r\n\r\n## 对比\r\n\r\n****\r\n\r\n## 版本\r\n\r\n****\r\n\r\n## 参考\r\n\r\n****\r\n\r\n## 协议\r\n\r\nJStarCraft Example遵循[Apache 2.0协议](https://www.apache.org/licenses/LICENSE-2.0.html),一切以其为基础的衍生作品均属于衍生作品的作者.\r\n\r\n****\r\n\r\n## 作者\r\n\r\n| 作者 | 洪钊桦 |\r\n| :----: | :----: |\r\n| E-mail | 110399057@qq.com, jstarcraft@gmail.com |\r\n\r\n****\r\n\r\n## 致谢\r\n\r\n特别感谢[LibRec团队](https://github.com/guoguibing/librec)在推荐方面提供的支持与帮助.\r\n\r\n特别感谢[陆徐刚](https://github.com/luxugang/Lucene-7.5.0)在搜索方面提供的支持与帮助.\r\n\r\n****\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhongzhaohua%2Fjstarcraft-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhongzhaohua%2Fjstarcraft-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhongzhaohua%2Fjstarcraft-example/lists"}