zoukankan      html  css  js  c++  java
  • Windows下安装Elasticsearch

    前言

    之前整理了一份安装的步骤,一直没时间写博客,拖了很久...今天抽时间发出来,记录一下,还没弄完,后续会补全

    步骤:

    一、安装Elasticsearch

    1.下载ES https://www.elastic.co/cn/downloads/elasticsearch

    2.安装ES:路径可以自己定义,其他的一路默认

     安装完成后,查看服务,已经启动了,下面验证下安装成功了没

    访问 http://localhost:9200  如果是下边的提示就是成功了

    二、安装head插件

    1.先安装nodejs
    32位安装包下载地址: https://nodejs.org/dist/v4.4.3/node-v4.4.3-x86.msi
    64位安装包下载地址: https://nodejs.org/dist/v4.4.3/node-v4.4.3-x64.msi
    2.安装
    安装grunt
    因为运行head需要借助grunt命令,所以需要安装grunt。进入Node.js目录下,执行命令npm install -g grunt-cli,将grunt安装位全局命令。

    进入head主目录执行npm install安装grunt,安装完成后执行grunt -version查看是否安装成功,会显示安装的版本号。

     3.配置head

    elasticsearch.yml配置:

    bootstrap.memory_lock: false
    cluster.name: elasticsearch
    http.port: 9200
    node.data: true
    node.ingest: true
    node.master: true
    node.max_local_storage_nodes: 1
    node.name: DESKTOP-KUCB0MD
    path.data: D:elasticsearchdata
    path.logs: D:elasticsearchlogs
    transport.tcp.port: 9300
    xpack.license.self_generated.type: basic
    xpack.security.enabled: false
    http.cors.enabled: true
    http.cors.allow-origin: "*"

    默认head放到根目录下

    三、数据同步

    1.下载logstash https://www.elastic.co/cn/downloads/logstash

    解压后放置根目录下

    2.安装ruby

    3.下载kibana https://www.elastic.co/cn/downloads/kibana

    连接多个表logstash https://stackoverflow.com/questions/37613611/multiple-inputs-on-logstash-jdbc/37613839#37613839

    要配置好jdbc.conf

    sql语句写到myes.sql里就行
    要有jdbc的插件

    logstash -f jdbcconfig/jdbc.conf
    注意 用的java版本11没成功 太高了 降低到1.8就能同步数据了

    同步的时候 只同步一条数据 一直再替换 导致最后es里只有一条
    解决方案如下:
    这个一定要前后小写(黄色位置):
    input {
    stdin {
    }
    jdbc {
    jdbc_driver_library => "D:elasticsearchMicrosoft JDBC Driver 6.0 for SQL Serversqljdbc_6.0chsjre8sqljdbc42.jar"
    jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
    jdbc_connection_string => "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=hdz"
    jdbc_user => "sa"
    jdbc_password => "1"
    # schedule => 分 时 天 月 年
    # schedule => * 22 * * * //will execute at 22:00 every day
    schedule => "* * * * *"
    jdbc_paging_enabled => true
    jdbc_page_size => 1000
    clean_run => false
    use_column_value => true
    #设置查询条件的字段
    tracking_column => lastedittime
    record_last_run => true
    last_run_metadata_path => "D:elasticsearchlogstash-7.3.0injdbcconfigdatastation_parameter.txt"
    #设置列名小写
    lowercase_column_names => true
    statement_filepath => "D:elasticsearchlogstash-7.3.0injdbcconfigmyes.sql"
    #索引的类型
    type => "goods"
    }
    }

    filter {
    json {
    source => "message"
    remove_field => ["message"]
    }
    }

    output {
    elasticsearch {
    hosts => ["127.0.0.1:9200"]
    action => "index"
    #索引
    index => "goods"
    document_id => "%{[id]}"
    }
    stdout {
    #codec => json_lines
    #设置输出的格式
    codec => line {
    format => "id: %{[id]} name: %{[name]} shortname: %{[shortname]} make: %{[make]} series: %{[series]} "
    }
    }
    }

    不知道为什么他一直在做查询 数据已经同步好了
    tracking_column => lastedittime 配置中 这个字段 我改为了id就是导入数据完成之后
    他会在station_parameter.txt记录一下 我这里改为记录id 然后sql语句之后加上
    select g.*,c0.Name as c0Name,c1.Name as c1Name,c2.Name as c2Name from MallGoods g join [dbo].[MallCategory] c0 on g.Cat0=c0.Id join [dbo].[MallCategory] c1 on g.Cat1=c1.Id join [dbo].[MallCategory] c2 on g.Cat2=c2.Id where g.id > :sql_last_value

    他会验证id是否大于上次保存的最后一个id 大于则是新增的 会添加数据

    安装ik分词
    https://github.com/medcl/elasticsearch-analysis-ik/releases

    重启elasticsearch服务

    .net
    安装nuget Nest

    他会自动引用这三个库


    发现问题:
    1.搜索条件只能是配置好的
    format => "id: %{[id]} name: %{[name]} shortname: %{[shortname]} make: %{[make]} series: %{[series]} "
    2.PlainElastic.Net 这个库

    PlainElastic.Net.Serialization.SearchResult

    这个返回结果 之前elasticsearch6.4的时候是正确的
    现在是7.3.0版本 返回的total由之前的int 变为了
    "total": {
    • "value": 10000,
    • "relation": "gte"
    },

  • 相关阅读:
    mysql-基础和基本指令
    网络笔试面试
    Windows访问Linux下的共享目录的配置方法
    帧动画 连续播放多张图片动画 以及ui动画 SoundPool
    ScrollView listView gridView 之间的冲突问题
    handler------post传送方式
    handler通信机制
    内部存储 openFileInputStream openFileOutputStream
    popupMenu-----弹出菜单
    为系统菜单添加图标--------暴力反射
  • 原文地址:https://www.cnblogs.com/LiChen19951127/p/11734132.html
Copyright © 2011-2022 走看看