全局搜索

1,传统上以行和列的形式存储数据到关系型数据库中,但是这种存储形式在存储复杂问题的时候会很不灵活。将对象按对象的方式来存储,这样我们就能更加专注于使用数据,重新利用对象的灵活性。而JSON是一种以人可读的文本表示对象的方法,它已经变成NoSQL世界交换数据的事实标准。

ElasticSearch是一个分布式、可扩展、实时的搜索与数据分析引擎。特点是面向文档:意味着存储的是整个对象或文档,而不是类似于Mysql的行列数据;使用JSON作为文档序列化格式,简单简洁且易于阅读。Spring Data Elasticsearch是Spring提供的一种以Spring Data风格来操作数据存储的方式,自定义Repository继承ElasticsearchRepository接口可以获得常用的数据操作方法,轻松实现对ElasticSearch中数据的增删改查,避免编写大量的样板代码。

2,由于ElasticSearch使用json保存数据,所以需要要在被保存的对象标注转换信息。当添加视频时不仅要将视频信息保存到数据库,还要保存到ElasticSearch,以便后续查询。

3,根据用户输入的关键字,利用ElasticSearch搜索用户的昵称、视频标题、视频简介,返回匹配的用户和视频,实现全局搜索。

4,当搜索关键字为前进时,搜索到昵称中包含关键字的用户前进的野兽先辈,和标题中包含关键字的视频前进4Eva,实现了全局搜索的功能。