SpringBoot高级(三)Elasticsearch

阅读: 评论:0

SpringBoot高级(三)Elasticsearch

SpringBoot高级(三)Elasticsearch

一、ES介绍

1、安装

elastic 的官网 /downloads/elasticsearch 获取最新版本的Elasticsearch。解压文档后,按照下面的操作

cd elasticsearch-<version>
./bin/elasticsearch.bat

此时,Elasticsearch运行在本地的9200端口,在浏览器中输入网址“localhost:9200/”,

2、概念

3、访问命令

使用postman , PUT类型, 127.0.0.1:9200/google/emp/1
将HTTP命令由PUT 改为GET可以用来检索文档,同样的,可以使用DELETE命令来删除文档,以及使用HEAD 指令来检查文档是否存在。如果想更新已存在的文档,只需再次PUT。

4、轻量搜索

  1. GET 是相当简单的,可以直接得到指定的文档。 现在尝试点儿稍微高级的功能,比如一个简单的搜索。我们使用下列请求来搜索所有雇员:
    GET /megacorp/employee/_search
  2. 尝试下搜索姓氏为Smith的雇员。这个方法一般涉及到一个查询字符串(_query-string)搜索,因为我们通过一个URL参数来传递查
    询信息给搜索接口:
    GET /megacorp/employee/_search?q=last_name:Smth

二、SpringBoot整合

SpringBoot默认支持两种技术来和ES交互:

  1. Jest(默认不生效)
  2. SpringData ElasticSearch

1、Jest

需要导入jest的工具包(io.searchbox.client.JestClient)

(1)核心依赖

<dependency><groupId>io.searchbox</groupId><artifactId>jest</artifactId><version>6.3.1</version>
</dependency>

(2)配置文件

spring.elasticsearch.jestt.uris=192.168.99.100:9200

(3)实体类配置


@Data
public class Article {@JestIdprivate Integer id;private String author;private String title;private String content;

(4)调用

    @AutowiredJestClient jestClient;//添加@Testvoid contextLoads() {Article article = new Article(1, "allen", "王武", "helloworld");println(article);//修改也可以用saveIndex index = new Index.Builder(article).index("megacorp").type("news").build(); ute(index);}//获取@Testpublic void search(){//获取aaa索引中id为1的Article对象String json = "";Search search = new Search.Builder(json).addIndex("megacorp").addType("news").build(); SearchResult result = ute(search );}

2、SpringData ElasticSearch

注意:SpringData和ES版本需要适配
.versions

(1)核心依赖

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

(2)配置文件

st.uris=192.168.99.100:9200
spring.data.elasticsearch.cluster-name=elasticsearch
spring.data.elasticsearch.cluster-nodes=192.168.99.100:9300

(3)实体类配置


@Data
@Document(indexName="megacorp", type="news")
public class Book{@JestIdprivate Integer id;private String author;private String title;

(4)第一种调用:继承ElasticseanchRepository

public interface BookRepository extends ElasticseanchRepository<Book,Integer> {
}
    @AutowiredBookRepository bookRepository ;//添加@Testvoid contextLoads() {Book book = new Book();bookRepository.index(book);}

(5)第二种调用: ElasticsearchRestTemplate

    @AutowiredElasticsearchRestTemplate elasticsearchRestTemplate;//添加@Testvoid contextLoads() {Article article = new Article(1, "allen", "bbb", "helloworld");println(article);//修改也可以用saveelasticsearchRestTemplate.save(article);}//获取@Testpublic void test02(){//获取aaa索引中id为1的Article对象Article article = ("1", Article.class);System.out.println(article);}

本文发布于:2024-01-27 22:15:22,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063649232953.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23