0.从Mongodb拿出数据到ElasticSearch,使用Springboot2.x调用

这篇博客从如何从mongodb中导出数据到es中开始,包含了下面几点

  • 0.关于logstash
    * 如何从mongodb中读取数据
    * 如何指定index Template(es中的索引模板)
  • 1.关于es (点我)
    * 指定生成索引的mapping
    * 指定分词器,中文分词器
  • 2.关于springboot (点我)
    * 我都想哭,关于stored_fields ,如何改写ElasticTemplate
    * 简单分析一下源码
    so ...

从mongodb中导出数据

我百度到了方法,从mongodb读数据一共有五种方法 (点击我查看),其中我考虑要使用的(mongo-connectorJDBC input plugin for logstash

  • 第一个:监听mongodb增删改了
  • 第二个:监听mongodb的_id,如果现在监听到的_id比我监听过的_id大,就响应。

但是为了过滤mongodb中的数据,我在这里选了基于logstash的logstash-input-mongodb插件

logstash-input-mongodb

下载:(点我,镜像)

  • 提供一个配置文件(后面会根据mongodb的数据,写es的index Template )


    config.png

但是使用这个时候第一个document的值并不会被导入到elasticSearch中.这是个问题?(点我可能会解决)

logstash-output-elasticsearch

    1. 这个插件logstash提供了的,so不下载。
  • 2.刚才看的配置文件,没有指定index Template,所以下面我们来设置index Template.
指定index Template有三种办法。(Template内容在下文es中)
  • 方法一:es,中写好index Template ,通过 index_patterns(es6)template(es5) 中的值来匹配我们写的索引名。
    • 重点manage_template =>false
    • 这个参数是说,你的索引要不要用logstash*的这个index template,false就不使用,当然这个前提是在你没有指定template的基础上提出的.
  • image.png
  • 方法二:指定ElasticSearch中特定的index Template的名字
    • 重点template_name=>"xxx"
    • image.png
  • 方法三:直接在logstash中指定es中的index template 的文件路径
    • 重点template : 指定路径
    • **重点template_overwrite :是否覆盖es中的template **
    • image.png

关于es的部分我们在下一篇我们再写(点我)

关于sprongboot部分我们在下下篇写(点我)

你可能感兴趣的:(0.从Mongodb拿出数据到ElasticSearch,使用Springboot2.x调用)