
day11 搜索服务
文章平均质量分 51
day11 搜索服务
feng_fly_28
这个作者很懒,什么都没留下…
展开
-
01-搜索前端技术需求-SEO
1.1 需求描述采用vue.js开发搜索界面则SEO不友好,需要解决SEO的问题。1.2 了解SEO搜索引擎特别喜欢路径为http://cd.nuoyunlive.com/uid/2/goodsid/3.html这样的路径不喜欢http://cd.nuoyunlive.com?uid=2&goodsid=3,这样的路径搜索引擎不喜欢,不利于爬取内容。所以我们进行参数拼接使用/这样的斜杠和.html结尾的路径,静态化页面有利于搜索引擎爬取页面...原创 2021-06-16 11:26:27 · 137 阅读 · 0 评论 -
23-课程搜索-接口实现-按关键字搜索
1)在appliction.yml中配置source_fieldsource_field: id,name,grade,mt,st,charge,valid,pic,qq,price,price_old,status,studymodel,teachmode,expires,pub_time,start_time,end_time4.5 Controlle@RestController@RequestMapping("/search/course")public class EsCourse原创 2021-06-09 18:06:45 · 400 阅读 · 0 评论 -
22-课程搜索-Api定义
4 课程搜索4.1 需求分析1、根据分类搜索课程信息。2、根据关键字搜索课程信息,搜索方式为全文检索,关键字需要匹配课程的名称、 课程内容。3、根据难度等级搜索课程。4、搜索结点分页显示。技术分析:1、根据关键字搜索,采用MultiMatchQuery,搜索name、description、teachplan2、根据分类、课程等级搜索采用过虑器实现。3、分页查询。4、高亮显示。4.2 创建搜索服务工程1)创建xc-service-search工程2)配置1、配置applict原创 2021-06-04 17:48:23 · 137 阅读 · 0 评论 -
20-课程索引-Logstash创建索引-测试
3.4.5 测试启动logstash.bat.\logstash.bat ‐f ..\config\mysql.conf报错解决bug:原来写的是jdbc_driver_library => “C:/Users/mayn/.m2/repository/mysql/mysql-connector-java/5.1.40/mysql-connector-java-5.1.40.pom”改为jdbc_driver_library => “~/.m2/repository/mys原创 2021-05-19 10:01:09 · 690 阅读 · 0 评论 -
19-课程索引-Logstash创建索引-安装配置
3.4 Logstash创建索引Logstash是ES下的一款开源软件,它能够同时 从多个来源采集数据、转换数据,然后将数据发送到Eleasticsearch中创建索引。本项目使用Logstash将MySQL中的数据采用到ES索引中。3.4.1 下载Logstash下载Logstash6.2.1版本,和本项目使用的Elasticsearch6.2.1版本一致。我给大家已经准备了这个安装包,不用自己下载了,我准备的这个安装包里面logstash-input-jdbc这个插件,所以不用执行3.4原创 2021-05-18 17:55:16 · 1945 阅读 · 0 评论 -
18-课程索引-搭建ES环境
3.3 搭建ES环境3.3.1 ES安装开发环境使用ES单机环境,启动ES服务端。注意:旧的ES环境,可以删除elasticsearch-6.2.1\data\nodes目录以完全清除ES环境。安装elasticsearch-head并启动。3.3.2 创建索引库创建索引库创建xc_course索引库,一个分片,0个副本。3.3.3 创建映射Post http://localhost:9200/xc_course/doc/_mapping{ "properties" : {原创 2021-05-18 15:37:50 · 139 阅读 · 0 评论 -
17-课程索引-准备课程索引信息-保存CoursePub测试
启动cms启动cms_client启动rabbit_mq启动课程管理启动前端原创 2021-05-18 15:05:59 · 90 阅读 · 0 评论 -
16-课程索引-准备课程索引信息-保存CoursePub
3.2.3修改课程发布在课程管理服务定义dao:1)创建course_pub表的daopublic interface CoursePubRepository extends JpaRepository<CoursePub,String> {}修改课程发布service @Autowired CoursePubRepository coursePubRepository; //创建coursePub对象 private CoursePub cr原创 2021-05-18 14:30:53 · 109 阅读 · 0 评论 -
15-课程索引-准备课程索引信息-CoursePub模型
1 课程搜索需求分析1.1 需求分析1、根据分类搜索课程信息。2、根据关键字搜索课程信息,搜索方式为全文检索,关键字需要匹配课程的名称、 课程内容。3、根据难度等级搜索课程。4、搜索结点分页显示。1.2 搜索流程1、课程管理服务将数据写到MySQL数据库2、使用Logstash将MySQL数据库中的数据写到ES的索引库。3、用户在前端搜索课程信息,请求到搜索服务。4、搜索服务请求ES搜索课程信息。2 全文检索技术研究参考:elasticsearch研究.md研究ElasticS原创 2021-05-18 10:31:39 · 214 阅读 · 0 评论 -
11-ElasticSearch-集群-集群结构
8 集群管理8.1 集群结构ES通常以集群方式工作,这样做不仅能够提高 ES的搜索能力还可以处理大数据搜索的能力,同时也增加了系统的容错能力及高可用,ES可以实现PB级数据的搜索。下图是ES集群结构的示意图:从上图总结以下概念:1、结点ES集群由多个服务器组成,每个服务器即为一个Node结点(该服务只部署了一个ES进程)。2、分片当我们的文档量很大时,由于内存和硬盘的限制,同时也为了提高ES的处理能力、容错能力及高可用能力,我们将索引分成若干分片,每个分片可以放在不同的服务器,这样就实原创 2021-05-18 09:41:06 · 722 阅读 · 0 评论 -
10-ElasticSearch-搜索管理-DSL搜索-高亮
7.3.10 高亮显示高亮显示可以将搜索结果一个或多个字突出显示,以便向用户展示匹配关键字的位置。在搜索语句中添加highlight即可实现,如下:Post: http://127.0.0.1:9200/xc_course/doc/_search{ "_source" : [ "name", "studymodel", "description","price"], "query": { "bool" : { "must":[ { "multi_match" : {原创 2021-05-17 14:52:47 · 215 阅读 · 0 评论 -
09-ElasticSearch-搜索管理-DSL搜索-排序
7.3.9 排序可以在字段上添加一个或多个排序,支持在keyword、date、float等类型上添加,text类型的字段上不允许添加排序。发送 POST http://localhost:9200/xc_course/doc/_search过虑0–10元价格范围的文档,并且对结果进行排序,先按studymodel降序,再按价格升序{ "_source" : [ "name", "studymodel", "description","price"], "query": { "bool"原创 2021-05-17 14:40:39 · 406 阅读 · 0 评论 -
08-ElasticSearch-搜索管理-DSL搜索-过虑器
7.3.8 过虑器过虑是针对搜索的结果进行过虑,过虑器主要判断的是文档是否匹配,不去计算和判断文档的匹配度得分,所以过虑器性能比查询要高,且方便缓存,推荐尽量使用过虑器去实现查询或者过虑器和查询共同使用。过虑器在布尔查询中使用,下边是在搜索结果的基础上进行过虑:{ "_source" : [ "name", "studymodel", "description","price"], "query": { "bool" : { "must":[ { "multi_match" :原创 2021-05-17 14:35:58 · 93 阅读 · 0 评论 -
07-ElasticSearch-搜索管理-DSL搜索-布尔查询
7.3.7 布尔查询布尔查询对应于Lucene的BooleanQuery查询,实现将多个查询组合起来。三个参数:must:文档必须匹配must所包括的查询条件,相当于 “AND” should:文档应该匹配should所包括的查询条件其中的一个或多个,相当于 “OR” must_not:文档不能匹配must_not所包括的该查询条件,相当于“NOT”分别使用must、should、must_not测试下边的查询:发送:POST http://localhost:9200/xc_course/do原创 2021-05-17 11:31:45 · 243 阅读 · 0 评论 -
06-ElasticSearch-搜索管理-DSL搜索-MultiMatchQuery
7.3.6 multi Query上边学习的termQuery和matchQuery一次只能匹配一个Field,本节学习multiQuery,一次可以匹配多个字段。1、基本使用单项匹配是在一个field中去匹配,多项匹配是拿关键字去多个Field中匹配。例子:发送:post http://localhost:9200/xc_course/doc/_search拿关键字 “spring css”去匹配name 和description字段。{ "query": { "multi_match"原创 2021-05-17 11:23:54 · 909 阅读 · 1 评论 -
05-ElasticSearch-搜索管理-DSL搜索-MatchQuery
7.3.5 match Query1、基本使用match Query即全文检索,它的搜索方式是先将搜索字符串分词,再使用各各词条从索引中搜索。match query与Term query区别是match query在搜索前先将搜索关键字分词,再拿各各词语去索引中搜索。发送:post http://localhost:9200/xc_course/doc/_search{"query": {"match" : {"description" : {"query" : "spring开发","原创 2021-05-14 17:57:47 · 264 阅读 · 0 评论 -
04-ElasticSearch-搜索管理-DSL搜索-TermQuery和Id查询
7.3.3 Term QueryTerm Query为精确查询,在搜索时会整体匹配关键字,不再将关键字分词。应用于:身份证号,电话号码等精确查询发送:post http://localhost:9200/xc_course/doc/_search{ "query": { "term" : { "name": "spring" } }, "_source" : ["name","studymodel"]}上边的搜索会查询name包括“spring”这个词的文档。案例1:原创 2021-05-14 17:35:06 · 665 阅读 · 0 评论 -
03-ElasticSearch-搜索管理-DSL搜索-分页查询
7.3.2 分页查询ES支持分页查询,传入两个参数:from和size。form:表示起始文档的下标,从0开始。size:查询的文档数量。发送:post http://localhost:9200/xc_course/doc/_search{"from" : 0, "size" : 1,"query": {"match_all": {}},"_source" : ["name","studymodel"]}JavaClientSearchRequest searchReques原创 2021-05-14 17:21:21 · 488 阅读 · 0 评论 -
02-ElasticSearch-搜索管理-DSL搜索-查询所有文档
7.3 DSL搜索DSL(Domain Specific Language)是ES提出的基于json的搜索方式,在搜索时传入特定的json格式的数据来完成不同的搜索需求。DSL比URI搜索方式功能强大,在项目中建议使用DSL方式来完成搜索。7.3.1 查询所有文档查询所有索引库的文档。发送:post http://localhost:9200/_search查询指定索引库指定类型下的文档。(通过使用此方法)发送:post http://localhost:9200/xc_course/do原创 2021-05-14 17:13:16 · 637 阅读 · 0 评论 -
01-ElasticSearch-搜索管理-准备环境
7搜索管理7.1 准备环境删除映射创建索引7.1.1 创建映射创建xc_course索引库。创建如下映射post:http://localhost:9200/xc_course/doc/_mappinghttp://localhost:9200/xc_course/doc/_mapping{ "properties": { "description": { "typ原创 2021-05-14 16:31:58 · 182 阅读 · 0 评论