Docker安装Elasticsearch+SpringBoot整合Elasticsearch新手入门

Docker安装Elasticsearch+SpringBoot整合Elasticsearch新手入门,第1张

Docker安装Elasticsearch+SpringBoot整合Elasticsearch新手入门

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

Relational DB -> Databases -> Tables -> Rows -> Columns

Elasticsearch -> Indices   -> Types -> documents -> Fields
先安装docker,如果安装了宝塔面板可以直接在商店安装docker

Docker安装Elasticsearch

拉取镜像并启动
#拉取镜像
docker pull elasticsearch:7.7.0

#启动镜像
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.7.0

--name 表示镜像启动后的容器名称  

-d: 后台运行容器,并返回容器ID;

-e: 指定容器内的环境变量

-p: 指定端口映射,格式为:主机(宿主)端口:容器端口
浏览器访问ip:9200

ElasticSearch面板

推荐浏览器安装Elasticvue插件管理ElasticSearch,Edge插件商店直接能安装,方便 。当然安装ElasticSearch Head也可。

Elasticvue | Edge插件商店

SpringBoot整合

注:如果Linux是自己电脑的虚拟机SpringBoot能直接访问,但是如果Linux是腾讯云阿里云等云服务器就需要修改ElasticSearch的配置文件才能远程访问。不是云服务器请跳过

docker exec -it elasticsearch bash
# docker命令进入elasticsearch

vi config/elasticsearch.yml
#通过vi编辑器打开配置文件

#文件内容如下
cluster.name: "docker-cluster"
network.host: 0.0.0.0
#添加以下两行 表示所有ip能访问elasticsearch
http.cors.enabled: true
http.cors.allow-origin: "*"

#保存文件 重启elasticsearch
创建Maven工程 在pom文件导入坐标

pom.xml



    4.0.0

    cn.appmy
    appmy-springboot-es
    1.0-SNAPSHOT
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.4.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.boot
            spring-boot-starter-data-elasticsearch
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    

在cn.appmy下创建启动类

@SpringBootApplication
public class ESApplication {
    public static void main(String[] args) {
        SpringApplication.run(ESApplication.class, args);
    }
}

创建yml文件

server:
  port: 8080
spring:
  data:
    elasticsearch:
      cluster-nodes: 127.0.0.1:9300 
      #如果是云服务器 填服务器ip 记得防火墙
      cluster-name: elasticsearch
创建pojo 添加注解进行映射
@document(indexName = "blog03",type = "article")
public class Article implements Serializable {

    @Id
    private Long id;

    @Field(index = true,searchAnalyzer = "ik_smart",analyzer = "ik_smart",store = true,type = FieldType.Text)
    private String title;

    @Field(index = true,searchAnalyzer = "ik_smart",analyzer = "ik_smart",store = true,type = FieldType.Text)
    private String content;

    public Article() {
    }
    public Article(long id, String title, String content) {
        this.id = id;
        this.title = title;
        this.content = content;
    }


    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    @Override
    public String toString() {
        return "Article{" +
                "id=" + id +
                ", title='" + title + ''' +
                ", content='" + content + ''' +
                '}';
    }
}
创建Dao接口继承ElasticsearchRepository
public interface ArticleDao  extends ElasticsearchRepository{

}
测试
@SpringBootTest
@RunWith(SpringRunner.class)
public class EsApplicationTest03 {
    @Autowired
    private ElasticsearchTemplate elasticsearchTemplate;

    @Autowired
    private ArticleDao dao;

    //创建索引
    //创建映射
    @Test
    public void createMapping() {
        elasticsearchTemplate.createIndex(Article.class);
        elasticsearchTemplate.putMapping(Article.class);
    }


}

原文博客https://appmy.cn/

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5678978.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存