在公司做小店铺的电商项目的时候,自己虽然大部分任务是放在前端,但是也在群里听到他们说清ES的数据,我就在想ES是个什么玩意,然后便去搜索看看。发现ES也就是ElasticSearch。
ElasticSearch是基于 Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful接口。RESTful指的是具有REST风格架构风格的。对于REST:分布式应用架构风格,其实我自己也没有特别理解。在网上看到的说:面向资源是REST最明显的特征,比如HTTP协议就是属于REST架构的设计模式:无状态请求。这里给一个链接可以参考一下这篇文章:
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。这里说的实时搜索值的是近实时搜索。同时在网络上看到ElasticSearch跟solr进行比较(两种搜索引擎我都没有了解过,这几天才开始尝试)
我这边安转ElasticSearch在Windows跟Linux系统上面都进行过尝试,Windows安装过程挺顺利的,但是Linux安装非常坎坷,昨天折腾一下午,最后还是安转好了(因为是腾讯的学生云主机)内存比较小,所以需要改虚拟机的启动配置不然总是被killed,然后其他的问题遇到就百度,没有进行记录,这里不再赘述了。
下面结合Spring Boot开始使用ElasticSearch。
资源文件:
spring.data.elasticsearch.cluster-name=my-application //这里是你配置文件中设置的名字
spring.data.elasticsearch.cluster-nodes=111.***.**.***:9300 //服务器IP
spring.data.elasticsearch.repositories.enable=true
server.port=8081
配置好资源文件之后,就开始使用它了(我这里是要爬取我自己CSDN博客的个人信息去存储到ElasticSearch,并获取)
关于爬取信息在文章末尾也叙述一下,这里还是来说一下Java操作ElasticSearch的过程
首先是Dao层:
package com.elastic.search.dao;
import com.elastic.search.vo.CSDNInfoVO;
import org.springframework.data.elasticsearch.repository.ElasticsearchRepository;
import org.springframework.stereotype.Component;
@Component
public interface CsdnDao extends ElasticsearchRepository<CSDNInfoVO, Long> {
CSDNInfoVO queryById(Long id);
}
@Component:
泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
关于ElasticsearchRepository这个类看后面这个单词Repository,可以猜测他是一个数据访问的接口
然后是Service层
public List<CSDNInfoVO> getcsdninfo() {
List<CSDNInfoVO> list = new ArrayList<>();
Long num = csdnDao.count();
for (long i = 1; i <= num; i++) {
list.ad