一、检索

我们的应用经常需要添加检索功能,开源的 ElasticSearch 是目前全文搜索引擎的首选。
他可以快速的存储、搜索和分析海量数据。Spring Boot通过整合Spring Data ElasticSearch
为我们提供了非常便捷的检索功能支持; 
 
Elasticsearch是一个分布式搜索服务,提供Restful API,底层基于Lucene,
采用多shard(分片)的方式保证数据安全,并且提供自动resharding的功能,
github等大型的站点也是采用了ElasticSearch作为其搜索服务,

二、ElasticSearch

1、使用docker下载ElasticSearch 

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p : -p : --name es1 4f7e4c61f09d

这里的-e是设置初始化时的内存,不设置时开启时需要较大的内存!!!

测试:

出现上述图文即表示服务开启成功!!!

 2、Elasticsearch相关使用和用法

Elasticsearch 是 面向文档 的,意味着它存储整个对象或 文档_。Elasticsearch 不仅存储文档,
而且 _索引 每个文档的内容使之可以被检索。在 Elasticsearch 中,你 对文档进行索引、
检索、排序和过滤--而不是对行列数据。这是一种完全不同的思考数据的方式,
也是 Elasticsearch 能支持复杂全文检索的原因。

JSON编辑

Elasticsearch 使用 JavaScript Object Notation 或者 JSON 作为文档的序列化格式。
JSON 序列化被大多数编程语言所支持,并且已经成为 NoSQL 领域的标准格式。 它简单、简洁、易于阅读
 
一个 Elasticsearch 集群可以 包含多个 索引 ,相应的每个索引可以包含多个 类型 。
 这些不同的类型存储着多个 文档 ,每个文档又有多个 属性 。

对于雇员目录,我们将做如下操作:
  • 每个雇员索引一个文档,包含该雇员的所有信息。
  • 每个文档都将是 employee 类型 。
  • 该类型位于 索引 megacorp 内。
  • 该索引保存在我们的 Elasticsearch 集群中。
megacorp
索引名称
employee
类型名称
1
特定雇员的ID
测试:

此时的相应:

此时在加入两条数据:

检索文档

目前我们已经在 Elasticsearch 中存储了一些数据, 接下来就能专注于实现应用的业务需求了。
第一个需求是可以检索到单个雇员的数据。
这在 Elasticsearch 中很简单。简单地执行 一个 HTTP GET 请求并指定文档的地址——索引库、
类型和ID。 使用这三个信息可以返回原始的 JSON 文档:
GET /megacorp/employee/1

HEAD是检验是否存在
DELETA是删除
 
将 HTTP 命令由 PUT 改为 GET 可以用来检索文档,同样的,
可以使用 DELETE 命令来删除文档,以及使用 HEAD 指令来检查文档是否存在。
如果想更新已存在的文档,只需再次 PUT 。

轻量搜索

一个 GET 是相当简单的,可以直接得到指定的文档。 现在尝试点儿稍微高级的功能,
比如一个简单的搜索!
第一个尝试的几乎是最简单的搜索了。我们使用下列请求来搜索所有雇员:
GET /megacorp/employee/_search 
192.168.1.118:9200/megacorp/employee/_search
注意:返回结果不仅告知匹配了哪些文档,还包含了整个文档本身:显示搜索结果给最终用户所需的全部信息。

使用查询表达式搜索

 
 

更复杂的搜索

 

全文搜索

 

短语搜索

为此对 match 查询稍作调整,使用一个叫做 match_phrase 的查询
 

高亮搜索

 

29、springboot与检索(1)的更多相关文章

  1. java框架之SpringBoot(13)-检索及整合Elasticsearch

    ElasticSearch介绍 简介 我们的应用经常需要使用检索功能,开源的 Elasticsearch 是目前全文搜索引擎的首选.它可以快速的存储.搜索和分析海量数据.SpringBoot 通过整合 ...

  2. 30、springboot与检索(2)

    项目中进行整合: 1.整合 新建项目加入依赖(NoSql) springboot默认使用SpringDate ElasticSearch模块进行操作   查看自动配置类: SpringBoot默认支持 ...

  3. 29. SpringBoot Redis 非注解

    1. 引入依赖 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  4. 千锋很火的SpringBoot实战开发教程视频

    springboot是什么? Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员 ...

  5. ElasticSearch+Springboot实际应用:索引同步建设,搜索过程

    1.介绍 springboot框架,众多自动化的部署和约定配置,造成了springboot的着手麻烦,熟练后可以快速快捷进行开发,常用作快捷开发的java底层框架.各位看官都是大神,自行体会.     ...

  6. springboot 注册dao层 service 层

    可以使用三种注解来引入DAO层的接口到spring容器中.1.@Mapper,写在每一个DAO层接口上,如下: 2.@MapperScan和@ComponentScan两者之一.前者的意义是将指定包中 ...

  7. SpringBoot | 第二十六章:邮件发送

    前言 讲解了日志相关的知识点后.今天来点相对简单的,一般上,我们在开发一些注册功能.发送验证码或者订单服务时,都会通过短信或者邮件的方式通知消费者,注册或者订单的相关信息.而且基本上邮件的内容都是模版 ...

  8. 微服务springboot视频最新SpringBoot2.0.3版本技术视频教程【免费学习】

    超火爆的springboot微服务技术怎么学,看这里,springboot超详细的教程↓↓↓↓↓↓https://ke.qq.com/course/179440?tuin=9b386640 01.sp ...

  9. SpringBoot项目创建流程--SpringMVC

    SpringBoot项目创建步骤 1. 创建SpringBoot工程 (1) File → New → Project → Spring Initilizr (2) Name:MySpringBoot ...

随机推荐

  1. Cheatsheet: 2017 10.01 ~ 12.31

    Mobile Updating Your App for iOS 11 Get Started With Natural Language Processing in iOS 11 Getting S ...

  2. 局域网内配置虚拟机的hostname

    一般上我们在局域网内访问,比如宿主机访问虚拟机的时候可以直接使用IP去访问,大多数情况下也都适用.但是对于有的情况,比如像新版的hbase的配置,它默认将localhost作为hbase.master ...

  3. SpringMVC笔记:annotation注解式开发

    一.配置式开发 在我们之前的学习中,springmvc使用配置式开发模式,需要在核心配置文件中springmvc.xml注册大量的bean来注入controller控制器,工作繁琐容易出错,下面我们学 ...

  4. 撩课-Java每天5道面试题第20天

    131.Spring是什么? 他解决的是业务逻辑层和其他各层的松耦合问题, 因此它将面向接口的编程思想 贯穿整个系统应用. Spring是一个轻量级的IoC和AOP容器框架. 目的是解决企业应用开发的 ...

  5. 关于java异常try catch finally的一道题

    这两天,有人咨询我一道关于java基础的题,具体代码如下: private static int m1() { int a = 10; try { a = 20; throw new RuntimeE ...

  6. EF框架CodeFirst the model backing the 'PModelEntities' context has changed since the database was created. Consider using Code First Migrations to update the database

    1.采用code first 做项目时,数据库已经生成,后期修改数据库表结构.再次运行时出现一下问题: Entity Framework : The model backing the 'Produc ...

  7. reac——父组件向子组件传递值,子组件何时能同步获得父组件改变后的值

    //这里是父组件的代码:export default class HeaderCom_son extends React.Component { constructor(props) { super( ...

  8. PHP在foreach中对$value赋值无效,应该用 ‘键’ 或者 &$value的形式

    首先我们看下这段代码: foreach ($data as$value) { $value['name'] = 'Hehe'; } $data中原始的数据为: array(1) { [0] => ...

  9. 微服务架构之spring cloud gateway

    Spring Cloud Gateway是spring cloud中起着非常重要的作用,是终端调用服务的入口,同时也是项目中每个服务对外暴露的统一口径,我们可以在网关中实现路径映射.权限验证.负载均衡 ...

  10. ubuntu 14.04/14.10 iptables 防火墙设置

    1. 一键批处理设置      [plain] view plaincopyprint? #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/loc ...