乐购商城项目技术总结 -- ElasticSearch

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

Elasticsearch 是一个分布式的免费开源搜索和分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。Elasticsearch 以其简单的 REST 风格 API、分布式特性、速度和可扩展性而闻名,是 Elastic Stack 的核心组件;Elastic Stack 是一套适用于数据采集、扩充、存储、分析和可视化的免费开源工具。人们通常将 Elastic Stack 称为 ELK Stack(代指 Elasticsearch、Logstash 和 Kibana),目前 Elastic Stack 包括一系列丰富的轻量型数据采集代理,这些代理统称为 Beats,可用来向 Elasticsearch 发送数据。


一、ElasticSearch相关概念


1. 基本概念

Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。 然而它不仅仅是存储,还会索引(index)每个文档的内容使之可以被搜索。在Elasticsearch中,你可以对 文档(而非成行成列的数据)进行索引、搜索、排序、过滤。

用Mysql这样的数据库存储就会容易想到建立一张User表,有很多的字段等,在Elasticsearch里这就是一个文档,当然这个文档会属于一个User的类型,各种各样的类型存在于一个索引当中。

关系数据库      ⇒ 数据库        ⇒  表         ⇒ 行              ⇒ 列(Columns)
 
Elasticsearch  ⇒ 索引(Index)   ⇒ 类型(type)  ⇒ 文档(Docments)  ⇒ 字段(Fields)  

2. ElasticSearch有什么用?

ElasticSearch在速度和扩展性上方面都表现出色, 而且还能够索引多种类型的内容, 这意味着其可用于多种用例:

  • 应用程序搜索
  • 网站搜索
  • 企业搜索
  • 日志处理和分析
  • 基础设施指标和容器检测
  • 地理空间数据分析和可视化
  • 安全分析
  • 业务分析

二、ElasticSearch安装

本项目中使用Docker安装

1. docker镜像下载

docker pull elasticsearch:5.6.8

2. 安装es容器

docker run -di --name=es -p 9200:9200 -p 9300:9300 elasticsearch:5.6.8

9200端口(Web管理平台端口) 9300(服务默认端口)
浏览器输入地址访问: http://110.42.216.234:9200 (注意: 请修改成自己的虚拟机ip)

在这里插入图片描述

3. 开启远程连接

上面完成安装后,es并不能正常使用,elasticsearch从5版本以后默认不开启远程连接,程序直接连接会报如下错误:

failed to load elasticsearch nodes : org.elasticsearch.client.transport.NoNodeAvailableException: None of the configured nodes are available: [{
   #transport#-1}{
   5ttLpMhkRjKLkvoY7ltUWg} {
   192.168.211.132}{
   192.168.211.132:9300}]

我们需要修改es配置开启远程连接,代码如下:

登录容器

docker exec -it es /bin/bash

进入config目录

cd config

调用ls命令可以看到如下文件

elasticsearch.yml log4j2.properties scripts

修改elasticsearch.yml文件

vi elasticsearch.yml

修改如下图:
在这里插入图片描述

同时添加下面一行代码:

cluster.name: my-elasticsearch

重启docker

docker restart es

三、项目整合ElasticSearch

pom.xml文件中添加ElasticSearch的依赖

<!--elasticsearch-->
<dependency>
	<groupId>org.springframework.boot</groupId> 
	<artifactId>spring-boot-starter-data-elasticsearch</artifactId>
</dependency>

配置文件 search-service.yml 中ElasticSearch的相关配置:

server:
  port: 9006

其他配置...


spring:
  data:
    elasticsearch:
	  cluster-name: elasticsearch 
	  cluster-nodes: 192.168.220.110:9300
  elasticsearch:
    rest:
	  uris: 192.168.220.110:9200

编写启动类 SearchApplication.java

package com.gyh.legou.search;

@SpringBootApplication //spring boot 
@EnableDiscoveryClient //将微服务注册到注册中心 
@EnableFeignClients //通过feign调用其他微服务 
@EnableCircuitBreaker //开启熔断,微服务容错保护 
public class SearchApplication {
   

	public static void main(String[] args) {
    	
		SpringApplication.run(SearchApplication.class, args);
	} 
	
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值