12章 搜索框架ElasticSearch介绍和整合SpringBoot 4节课

1、搜索引擎知识和搜索框架elasticsearch基本介绍
     简介:通过京东电商 介绍什么是搜索引擎,和开源搜索框架ElasticSearch6.x新特性介绍

前言:介绍ES的主要特点和使用场景,新特性讲解
         mysql:like 模糊,性能问题,

solr:针对企业,Lucene
         elasticsearch:针对数据量特别大,PB,TB
           纯java开发,springboot使用,5.6版本
           es升级4->5版本,改动大,但是5版本后,改动不大

elasticSearch主要特点

1、特点:全文检索,结构化检索,数据统计、分析,接近实时处理,分布式搜索(可部署数百台服务器),处理PB级别的数据
             搜索纠错,自动完成
         2、使用场景:日志搜索,数据聚合,数据监控,报表统计分析
        
         3、国内外使用者:维基百科,Stack Overflow,GitHub

新特性讲解
    
         1、6.2.x版本基于Lucene 7.x,更快,性能进一步提升,对应的序列化组件,升级到Jackson 2.8
             mysql:database   table   rocord
             es   : index      type(只能存在一个)    document

2、推荐使用5.0版本推出的Java REST/HTTP客户端,依赖少,比Transport使用更方便,在基准测试中,性能并不输于Transport客户端,

在5.0到6.0版本中,每次有对应的API更新, 文档中也说明,推荐使用这种方式进行开发使用,所有可用节点间的负载均衡
         在节点故障和特定响应代码的情况下进行故障转移,失败的连接处罚(失败的节点是否重试取决于失败的连续次数;失败的失败次数越多,客户端在再次尝试同一节点之前等待的时间越长)
        
         3、(重要)不再支持一个索引库里面多个type,6.x版本已经禁止一个index里面多个type,所以一个index索引库只能存在1个type

官方文档:
         1、6.0更新特性
          https://www.elastic.co/guide/en/elasticsearch/reference/6.0/release-notes-6.0.0.html#breaking-java-6.0.0
         2、6.1更新特性
         https://www.elastic.co/guide/en/elasticsearch/reference/6.1/release-notes-6.1.0.html

2、快熟部署ElastcSearch5.6.x
     简介:讲解为什么不用ES6.x版本,及本地快速安装ElasticSeach和场景问题处理
        
     配置JDK1.8
         使用wget 下载elasticsearch安装包
         wget  https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.tar.gz
     解压
         tar -zxvf elasticsearch-5.6.8.tar.gz
     官网:https://www.elastic.co/products/elasticsearch
    
     外网访问配置:   
         config目录下面elasticsearch.yml
         修改为 network.host: 0.0.0.0

配置es出现相关问题处理(阿里云、腾讯云,亚马逊云安装问题集合):
         1、问题一
             Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c5330000, 986513408, 0) failed; error=‘Cannot allocate memory‘ (errno=12)
             #
             # There is insufficient memory for the Java Runtime Environment to continue.
             # Native memory allocation (mmap) failed to map 986513408 bytes for committing reserved memory.
             # An error report file with more information is saved as:
             # /usr/local/software/temp/elasticsearch-6.2.2/hs_err_pid1912.log
         解决:内存不够,购买阿里云的机器可以动态增加内存

2、问题二
             [[email protected] bin]# ./elasticsearch
             [2018-02-22T20:14:04,870][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
             org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
             at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:125) ~[elasticsearch-6.2.2.jar:6.2.2]
             at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112) ~[elasticsearch-6.2.2.jar:6.2.2]
             at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.2.2.jar:6.2.2]
             at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.2.2.jar:6.2.2]
         解决:用非root用户
             添加用户:useradd -m 用户名  然后设置密码  passwd 用户名

3、问题三
             ./elasticsearch
             Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/software/temp/elasticsearch-6.2.2/config/jvm.options
            解决:权限不够 chmod 777 -R 当前es目录

常见配置问题资料:https://www.jianshu.com/p/c5d6ec0f35e0

  Windows环境使用教程:

  将zip文件解压进入 elasticsearch-xx\bin 目录,双击执行 elasticsearch.bat,该脚本文件执行 ElasticSearch 安装程序,稍等片刻,打开浏览器,输入 http://localhost:9200 ,显式以下画面,说明ES安装成功。

  

3、ElasticSearch5.6.8测试数据准备
     简介: ElasticSearch5.6.x简单测试
         1、步骤 https://www.elastic.co/guide/en/elasticsearch/reference/5.6/index.html
         2、使用POSTMAN 工具

基础
             查看集群状态:localhost:9200/_cat/health?v
             查看索引列表:localhost:9200/_cat/indices?v

4、SpringBoot2.x整合elasticsearch5.6.x
     简介:SpringBoot2.x整合elasticSearch5.6.8实战

Spring Data Elasticsearch文档地址
         https://docs.spring.io/spring-data/elasticsearch/docs/3.0.6.RELEASE/reference/html/

版本说明:SpringBoot整合elasticsearch
             https://github.com/spring-projects/spring-data-elasticsearch/wiki/Spring-Data-Elasticsearch---Spring-Boot---version-matrix

1、添加maven依赖                   
             <dependency> 
                <groupId>org.springframework.boot</groupId> 
                <artifactId>spring-boot-starter-data-elasticsearch</artifactId> 
            </dependency>

2、接口继承ElasticSearchRepository,里面有很多默认实现
             注意点:
                  索引名称记得小写,类属性名称也要小写
              新建实体对象article
              加上类注解 @Document(indexName = "blog", type = "article")

3、配置文件:
              # ELASTICSEARCH (ElasticsearchProperties)
             spring.data.elasticsearch.cluster-name=elasticsearch # Elasticsearch cluster name.
             spring.data.elasticsearch.cluster-nodes=localhost:9300 # Comma-separated list of cluster node addresses.
             spring.data.elasticsearch.repositories.enabled=true # Whether to enable Elasticsearch repositories.

4、QueryBuilder使用
         https://www.elastic.co/guide/en/elasticsearch/client/java-api/1.3/query-dsl-queries.html
        
         //单个匹配,搜索name为jack的文档 
         QueryBuilder queryBuilder = QueryBuilders.matchQuery("title", "搜");

4、查看es数据

查看索引信息:http://localhost:9200/_cat/indices?v
             查看某个索引库结构:http://localhost:9200/blog
             查看某个对象:http://localhost:9200/blog/article/1

原文地址:https://www.cnblogs.com/116970u/p/10269497.html

时间: 2024-11-09 07:19:07

12章 搜索框架ElasticSearch介绍和整合SpringBoot 4节课的相关文章

《白帽子讲WEB安全》学习笔记之第12章 WEB框架安全

第12章 WEB框架安全 12.1 MVC框架安全 在Spring框架中可以使用spring security来增加系统的安全性. 12.2 模板引擎与XSS防御 12.3 WEB框架与CSRF防御 在MVC中防御CSRF: q  在Session中绑定token.如果不能保存到数据库中的Session,则使用Cookie. q  在form表单中自动填写token字段 q  在Ajax请求中封装token. q  在服务器端对比POST提交的token与Session绑定的Tiken是否一致.

JS读书笔记:《JavaScript框架设计》——第12章 异步处理

一.何为异步   执行任务的过程可以被分为发起和执行两个部分. 同步执行模式:任务发起后必须等待直到任务执行完成并返回结果后,才会执行下一个任务. 异步执行模式:任务发起后不等待任务执行完成,而是马上执行下一个任务,当任务执行完成时则会收到通知. 面对IO操作频繁的场景,异步执行模式可在同等的硬件资源条件下提供更大的并发处理能力,也就是更大的吞吐量. 但由于异步执行模式打破人们固有的思维方式,并且任务的发起和任务的执行是分离的,从而提高编程的复杂度. 多线程.多进程均可实现异步模式. 二.从回调

Hadoop学习系列(2.Hadoop框架介绍与搜索技术体系介绍)

第一天 2.Hadoop框架介绍与搜索技术体系介绍 1. 大数据典型特性与分布式开发难点 2. Hadoop框架介绍与搜索技术体系介绍 3. Hadoop版本与特性介绍 4. Hadoop核心模块之HDFS分布式文件系统架构介绍 5. Hadoop核心模块之Yarn操作系统架构介绍 6. Linux安全禁用设置与JDK安装讲解 7. Hadoop伪分布式环境部署HDFS部分 8. Hadoop伪分布式环境部署Yarn和MR部分 9. Hadoop环境使用常见的错误集合 10. Hadoop环境常

第12章 Reference-RIL运行框架

Reference-RIL完成两部分处理逻辑: 与LibRIL交互完成RIL消息的处理. 与Modem通信模块交互完成AT命令的执行. Reference-RIL的运行机制 主要涉及以下几个方面: Reference-RIL的初始化函数RIL_Init. onRequest函数接收LibRIL的请求调用. 接收Modem发出的UnSolicited Response消息的处理逻辑. RIL_init函数初始化Reference-RIL RIL_init函数完成的Reference-RIL初始化工

第12章-Swing编程 --- Swing中的特殊容器--JSplitPane

(一)使用JSplitPane JSplitPane用于创建一个分割板,它可以将一个组件(通常是一个容器)分割成两个部分,并提供一个分割条.用户可以拖动该分隔条来调整两个部分的大小.分隔面板的实质是一个特殊容器,该容器只能容纳两个组件,而且分割面板又分为上下分割.左右分割两种情形. 创建分割面板的代码如下: new JSplitPane(方向,左/上组件,右/下组件); JSplitPane分割面板提供了如下几个方法: (1)setDividerLocation(double proportio

第一章 maven+springmvc+spring+mybatis+velocity整合

一.ssmm简介 ssmm是当下企业最常用的开发框架架构 maven:管理项目jar包,构建项目 spring:IOC容器,事务管理 springmvc:mvc框架 myBatis:持久层框架 velocity:前端视图模板(相较于jsp,速度非常快,而且不需要占据jvm的永久代内存) 上述这些框架再加上版本控制工具(git).自动化部署工具(jenkins),就组成了当下中大型企业最常用的项目开发部署架构:以上各种框架以后我也会依次做笔记去写的,所以在下边不会做详细介绍.还有,在以下的整合过程

《HTML 5网页开发实例具体解释》样章、内容简单介绍、前言

http://spu.jd.com/1167757597.html http://product.dangdang.com/23484942.html 样章 http://download.csdn.net/download/hdzn0603/7421803 内容简单介绍 <HTML 5网页开发实例具体解释>从实际的应用场景出发.结合当下的热门技术.深入浅出地介绍了 HTML 5所包括的各项新技术. 本书分为 14章.第 1~4章介绍了 HTML 5和浏览器的发展史. HTML 5新特性的使用

.NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器学习算法以及提供计算机视频.音频.信号处理以及统计应用相关的解决方案.该项目使用C#语言编写,项目主页:http://accord-framework.net/ 说明:该文章只是一个基本介绍,主要内容是翻译的官方文档和介绍,部分英文表述个人能力有限,不太熟悉,所以直接照搬原文,有比较确切的知道中文名

MySQL性能调优与架构设计——第12章 可扩展设计的基本原则

第12章 可扩展设计的基本原则 前言: 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求?只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力的系统,也就是说,我们必须进行可扩展设计.可扩展设计是一个非常复杂的系统工程,所涉及的各个方面非常的广泛,技术也较为复杂,可能还会带来很多其他方面的问题.但不管我们如何设计,不管遇到哪些问题,有些原则我们还是必须确保的.本章