springboot集成Elasticsearch

什么是Elasticsearch?

Elasticsearch是一个开源的分布式、RESTful 风格的搜索和数据分析引擎,它的底层是开源库Apache Lucene。
  Lucene 可以说是当下最先进、高性能、全功能的搜索引擎库——无论是开源还是私有,但它也仅仅只是一个库。为了充分发挥其功能,你需要使用 Java 并将 Lucene 直接集成到应用程序中。 更糟糕的是,您可能需要获得信息检索学位才能了解其工作原理,因为Lucene 非常复杂。
  为了解决Lucene使用时的繁复性,于是Elasticsearch便应运而生。它使用 Java 编写,内部采用 Lucene 做索引与搜索,但是它的目标是使全文检索变得更简单,简单来说,就是对Lucene 做了一层封装,它提供了一套简单一致的 RESTful API 来帮助我们实现存储和检索。
  当然,Elasticsearch 不仅仅是 Lucene,并且也不仅仅只是一个全文搜索引擎。 它可以被下面这样准确地形容:

  1. 一个分布式的实时文档存储,每个字段可以被索引与搜索;
  2. 一个分布式实时分析搜索引擎;
  3. 能胜任上百个服务节点的扩展,并支持 PB级别的结构化或者非结构化数据。

由于Elasticsearch的功能强大和使用简单,维基百科、卫报、Stack Overflow、GitHub等都纷纷采用它来做搜索。现在,Elasticsearch已成为全文搜索领域的主流软件之一。
  下面将介绍Elasticsearch的安装与简单使用。

安装并运行Elasticsearch

你可以从 elastic 的官网 elastic.co/downloads/elasticsearch 获取最新版本的Elasticsearch。解压文档后,进入文件夹的bin目录下,点击elasticsearch.bat运行elasticsearch。
在这里插入图片描述
在浏览器输入http://127.0.0.1:9200/,如果显示在这里插入图片描述
说明elasticsearch运行成功。

使用Elasticsearch

接下来是对Elasticsearch的基本使用,具体可以参照Elasticsearch中文文档
此处不做赘述。

springboot集成Elaticsearch

首先创建一个springboot项目,pom文件中添加依赖

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

创建实体类,添加Document注解

@Data
@Table(name = "user_info", schema = "pangting")
@Document(indexName = "user",type = "man")
public class UserInfoEntity extends BaseEntity {
    String userName;
    Integer age;
    Double height = 1.88;
}

创建测试用例,具体使用有待添加

    @Test
    public void test() {
        System.out.println("开始创建索引");
        elasticsearchTemplate.createIndex(UserInfoEntity.class);
        UserInfoEntity userInfoEntity = new UserInfoEntity();
        userInfoEntity.setId("helloworld");
        userInfoEntity.setUserName("小明");
        userInfoEntity.setHeight(1.88);
        userInfoEntity.setAge(22);
        IndexQuery indexQuery = new IndexQueryBuilder().withId(userInfoEntity.getId()).withObject(userInfoEntity).build();
        String index = elasticsearchTemplate.index(indexQuery);
        SearchQuery searchQuery = new NativeSearchQueryBuilder()
                .withQuery(QueryBuilders.queryStringQuery("明"))
                .withPageable(new PageRequest(0, 20))
                .build();
        List<UserInfoEntity> list = elasticsearchTemplate.queryForList(searchQuery, UserInfoEntity.class);
        System.out.println(list.toString());
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值