# kun-es-recommend **Repository Path**: yuefb/kun-es-recommend ## Basic Information - **Project Name**: kun-es-recommend - **Description**: 使用es实现仿京东搜索推荐系统 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2025-07-15 - **Last Updated**: 2025-07-15 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 使用es实现仿京东搜索推荐系统 主要功能: 1. 用户输入关键词进行搜索,返回匹配的文档列表。 2. 搜索框的自动补全功能,根据用户输入的关键词返回匹配的搜索建议列表。 ### 1. 搜索推荐系统概述 #### 1.1 什么是搜索推荐系统 搜索推荐系统是互联网上最常用的技术之一,它可以帮助用户快速找到他们感兴趣的内容。搜索推荐系统通常包括三个主要组件:用户交互、内容推荐和算法模型。 #### 1.2 搜索推荐系统的应用场景 主要应用于电商、视频、音乐等在线服务中,帮助用户快速找到他们感兴趣的内容。 ### 2. 使用es实现搜索推荐系统 #### 2.1 es搜索推荐系统的架构设计 #### 2.2 es搜索推荐系统的工作流程 1. 用户输入关键词进行搜索。 2. 将关键词传递给搜索引擎,搜索引擎将关键词分词并生成查询语句。 3. 搜索引擎将查询语句发送到索引服务器中,索引服务器根据查询语句返回匹配的文档列表。 4. 索引服务器将文档列表返回给搜索引擎。 5. 搜索引擎将文档列表返回给用户。 6. 用户查看搜索结果,点击感兴趣的文档进行浏览或购买。 #### 2.3 es搜索推荐系统的实现步骤 1. 创建索引:在es中创建一个索引,用于存储用户搜索记录和商品信息。 2. 导入数据:将用户搜索记录和商品信息导入到es中。 3. 构建查询语句:根据用户输入的关键词生成查询语句,用于检索匹配的文档列表。 4. 返回结果:将匹配的文档列表返回给用户进行浏览或购买。 ##### 2.3.1 创建索引 ```yaml { "jd_search": { "mappings": { "properties": { "id": { "type": "text", "fields": { "keyword": { "type": "keyword", "ignore_above": 256 } } }, "img": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }, "name": { "type": "text", "fields": { "keyword": { "type": "keyword" }, "suggest": { "type": "completion", "analyzer": "simple", "preserve_separators": true, "preserve_position_increments": true, "max_input_length": 50 } } }, "price": { "type": "text", "fields": { "keyword": { "type": "keyword" } } }, "shop": { "type": "text", "fields": { "keyword": { "type": "keyword" } } } } } } ``` ##### 2.3.2 爬取京东数据 使用jsoup来解析html数据 1. 打开网页版京东,进行登陆,然后进行搜索商品 ![img.png](pic/img.png) 2. 打开控制台 ![img_1.png](pic/img_1.png) 找到 cookie中的thor属性将thor属性作为key,thor的值作为value,设置到cookie中 按照如下代码片段设置: ![img_2.png](pic/img_2.png) ###### 2.3.3 构建查询语句和返回结果列表 详细代码请参考SearchService中searchDataList()方法 ###### 2.3.4 实现输入框数据的自动补全功能 详细代码请参考SearchService中suggestionList方法 ### 3. es搜索推荐系统的优缺点 #### 3.1 es搜索推荐系统的优点 1. 快速响应:es搜索推荐系统可以快速响应用户的搜索请求,为用户提供实时的搜索结果。 2. 高精度:es搜索推荐系统可以根据用户的历史搜索记录和兴趣偏好进行精准推荐,提高用户的搜索体验。 3. 实时更新:es搜索推荐系统可以实时更新索引和文档列表,确保搜索结果始终是最新的。 #### 3.2 es搜索推荐系统的缺点 1. 需要维护索引和数据:es搜索推荐系统需要维护索引和数据,需要一定的资源成本和时间成本。 2. 算法复杂度较高:es搜索推荐系统的算法复杂度较高,需要一定的计算资源和时间成本。 ### 4.启动测试 1. 启动es服务 2. 启动项目 3. 访问http://localhost:8080/或http://localhost:8080/index 4. 输入搜索关键词进行测试