Linux下,非Docker启动Elasticsearch 6.3.0

  1. 查看java版本,需要1.8版本
  2. java -version
  3.  
  4. yum -y install java
  5.  
  6. 创建用户,因为elasticsearch不能root操作
  7. useradd panfeng
  8.  
  9. 设置密码
  10. passwd panfeng
  11.  
  12. 输入123456,上面说无效小于8字符,又让输入一次,再输入123456
  13.  
  14. 切换用户,带有-参数是把当前环境也切换过去
  15. su - panfeng
  16.  
  17. 这时候用ftpelasticsearch-6.3.0.tar.gz放到/home/panfeng
  18.  
  19. 退出用户
  20. exit
  21.  
  22. 进入目录
  23. cd /home/panfeng
  24.  
  25. 查看详情
  26. ll
  27. 总用量 89284
  28. -rw-r--r--. 1 root root 91423553 7 4 22:33 elasticsearch-6.3.0.tar.gz
  29.  
  30. 把权限乐优
  31. chown panfeng:panfeng elasticsearch-6.3.0.tar.gz
  32.  
  33. 再查看详情
  34. ll
  35. 总用量 89284
  36. -rw-r--r--. 1 panfeng panfeng 91423553 7 4 22:33 elasticsearch-6.3.0.tar.gz
  37.  
  38. 修改文件权限
  39. chmod 755 elasticsearch-6.3.0.tar.gz
  40.  
  41. 再次查看详情,这时的elasticsearch-6.3.0.tar.gz就会变为绿色
  42. ll
  43. 总用量 89284
  44. -rwxr-xr-x. 1 panfeng panfeng 91423553 7 4 22:33 elasticsearch-6.3.0.tar.gz
  45.  
  46. 切换用户
  47. su - panfeng
  48.  
  49. 解压文件
  50. tar -zxvf elasticsearch-6.3.0.tar.gz
  51.  
  52. 修改解压后的文件夹名称为elasticsearch
  53. mv elasticsearch-6.3.0 elasticsearch
  54.  
  55. 进入目录
  56. cd elasticsearch
  57.  
  58. 查看详:bin执行的脚本,config配置,lib依赖,logs日志,modules模块,plugins插件
  59. ll
  60.  
  61. 进入目录
  62. cd config
  63.  
  64. 查看详情,elasticsearch.ymlelasticsearch的核心配置文件,jvm.optionsJava虚拟机参数
  65. ll
  66.  
  67. 编辑Java虚拟机参数
  68. vim jvm.options
  69.  
  70. 2223行的1g改为512m 输入 I 插入进行编辑,编辑好之后按 Esc 输入:wq 保存并退出
  71.  
  72. 编辑elasticsearch核心配置文件elasticsearch.yml
  73. vim elasticsearch.yml
  74.  
  75. 33 数据目录位置改为 path.data: /home/panfeng/elasticsearch/data
  76. 37 日志目录位置改为 path.logs: /home/panfeng/elasticsearch/logs
  77. 55 修改绑定的ip,默认只允许本机访问,修改为0.0.0.0后则可以远程访问,改为 network.host: 0.0.0.0
  78. Elasticsearch的插件要求至少3.5以上版本,这里最好禁用这个插件,修改elasticsearch.yml文件,在最下面添加如下配置:在文件最下面另起一行 添加 bootstrap.system_call_filter: false
  79. 输入 I 插入进行编辑,编辑好之后按 Esc 输入:wq 保存并退出
  80.  
  81. 退出用户
  82. exit
  83.  
  84. 修改文件权限
  85. vim /etc/security/limits.conf
  86.  
  87. 在# End of file上面添加下面四行数据
  88.  
  89. * soft nofile 65536
  90.  
  91. * hard nofile 131072
  92.  
  93. * soft nproc 4096
  94.  
  95. * hard nproc 4096
  96.  
  97. 输入 I 插入进行编辑,编辑好之后按 Esc 输入:wq 保存并退出
  98.  
  99. 修改线程数
  100. vim /etc/security/limits.d/90-nproc.conf
  101.  
  102. * soft nproc 4096
  103. root soft nproc unlimited
  104.  
  105. 如果有和两行代码直接把*对应的改为4096就行了,如果没有就直接添加
  106. 输入 I 插入进行编辑,编辑好之后按 Esc 输入:wq 保存并退出
  107.  
  108. 修改虚拟内存
  109. vim /etc/sysctl.conf
  110.  
  111. 添加vm.max_map_count=655360 如果有就修改
  112. 输入 I 插入进行编辑,编辑好之后按 Esc 输入:wq 保存并退出
  113.  
  114. 修改虚拟内存生效
  115. sysctl -p
  116.  
  117. 如果显示 vm.max_map_count = 655360 就修改成功了~
  118.  
  119. 进入目录
  120. cd /home/panfeng/elasticsearch
  121.  
  122. 创建data目录,logs目录已经存在就不用创建了
  123. mkdir data
  124.  
  125. 进入目录
  126. cd /home/panfeng/elasticsearch/bin/
  127.  
  128. 运行elasticsearch
  129. ./elasticsearch
  130.  
  131. 这时候在Windows浏览器输入 虚拟机ip:9200 来访问是否启动成功

Linux下,非Docker启动Elasticsearch 6.3.0,操作过程

安装ik分词器插件,以及使用Kibana测试Elasticsearch

  1. ftp上传elasticsearch-analysis-ik-6.3.0.zip到/home/panfeng/elasticsearch/plugins/
  2.  
  3. 进入目录
  4. cd /home/panfeng/elasticsearch/plugins/
  5.  
  6. 使用unzip解压ik分词器
  7. unzip elasticsearch-analysis-ik-6.3.0.zip -d ik-analyzer
  8.  
  9. 删除elasticsearch-analysis-ik-6.3.0.zip,因为这个是插件目录,这个zip文件会解析错误
  10. rm -f elasticsearch-analysis-ik-6.3.0.zip
  11.  
  12. Windows下解压kibana
  13. kibana-6.3.0-windows-x86_64.zip
  14.  
  15. 解压后,进入安装目录下的config目录,修改kibana.yml文件
  16. 我的虚拟机地址192.168.1.104,所以第28行修改为 elasticsearch.url: "http://192.168.1.104:9200"
  17.  
  18. 进入安装目录下的bin目录,双击运行kibana.bat,第一次运行慢,等待一会,如果几分钟还是不行的话,就再关闭窗口,再重新双击运行kibana.bat

安装ik分词器插件,以及使用Kibana测试Elasticsearch

先用RestClient测试

    1. 请求方式:PUT
    2. 请求路径:/索引库名
    3. 请求参数:json格式
    4.  
    5. {
    6. "settings": {
    7. "number_of_shards": 3,
    8. "number_of_replicas": 2
    9. }
    10. }
    11.  
    12. settings:索引库的设置
    13. number_of_shards:分片数量
    14. number_of_replicas:副本数量
  • 发送
  • 响应

Kibana操作Elasticsearch

  • 操作索引

    • 创建索引

    • 查看索引设置

      1. 查看指定索引
        GET /索引库名
      2.  
      3. 查看所有所有
        GET *

    • 删除索引

      1. DELETE /索引库名

  • 映射配置

    • 创建映射字段

      1. PUT /索引库名/_mapping/类型名称
      2. {
      3. "properties": {
      4. "字段名": {
      5. "type": "类型",
      6. "index": true
      7. "store": true
      8. "analyzer": "分词器"
      9. }
      10. }
      11. }
      12.  
      13. 类型名称:就是前面将的type的概念,类似于数据库中的不同表
      14. 字段名:任意填写,可以指定许多属性,例如:
      15. type:类型,可以是text,long,short,date,integer,object等,Stringtext可以分词,Stringkeyword不可以分词
      16. index:是否索引,默认为true
      17. store:是否存储,默认为false,默认保存到_source
      18. analyzer:分词器,这里的`ik_max_word`即使用ik分词器,固定写法

    • 查看映射信息

      1. GET /索引库名/_mapping

    • 字段属性详解

      • type

        1. - String类型,又分两种:
        2. - text:可分词,不可参与聚合
        3. - keyword:不可分词,数据会作为完整字段进行匹配,可以参与聚合
        4.  
        5. - Numerical:数值类型,分两类
        6. - 基本数据类型(一般使用long,interger):longintergershortbytedoublefloathalf_float
        7. - 浮点数的高精度类型:scaled_float
        8. - 需要指定一个精度因子,比如10100elasticsearch会把真实值乘以这个因子后存储,取出时再还原。
        9.  
        10. - Date:日期类型
        11. elasticsearch可以对日期格式化为字符串存储,但是建议我们存储为毫秒值,存储为long,节省空间。
      • index
        1. index影响字段的索引情况。
        2. - true:字段会被索引,则可以用来进行搜索。默认值就是true
        3. - false:字段不会被索引,不能用来搜索
        4.  
        5. index的默认值就是true,也就是说你不进行任何配置,所有字段都会被索引。
        6. 但是有些字段是我们不希望被索引的,比如商品的图片信息,就需要手动设置indexfalse
      • store
        1. 是否将数据进行额外存储。
        2.  
        3. 在学习lucenesolr时,我们知道如果一个字段的store设置为false,那么在文档列表中就不会有这个字段的值,用户的搜索结果中不会显示出来。
        4.  
        5. 但是在Elasticsearch中,即便store设置为false,也可以搜索到结果。
        6. 原因是Elasticsearch在创建文档索引时,会将文档中的原始数据备份,保存到一个叫做`_source`的属性中。而且我们可以通过过滤`_source`来选择哪些要显示,哪些不显示。
        7. 而如果设置storetrue,就会在`_source`以外额外存储一份数据,多余,因此一般我们都会将store设置为false,事实上,**store的默认值就是false。**
  • 新增数据

    • 随机生成id

      1. POST /索引库名/类型名
      2. {
      3. "key":"value"
      4. }
      5.  

      _source:源文档信息,所有的数据都在里面。
      _id:这条文档的唯一标示,与文档自己的id字段没有关联

    • 自定义id

      1. POST /索引库名/类型/id
      2. {
      3. ...
      4. }

    • 添加字段,修改数据

      1. 修改必须指定id
      2.  
      3. - id对应文档存在,则修改
      4. - id对应文档不存在,则新增

    • 删除数据

      1. DELETE /索引库名/类型名/id

  • *查询

    • 基本查询

      • 基本语法

        1. GET /索引库名/_search
        2. {
        3. "query":{
        4. "查询类型":{
        5. "查询条件":"查询条件值"
        6. }
        7. }
        8. }
        9.  
        10. 查询类型为 match_all , match , multi_match , term , terms
      • 查询所有 match_all

        1. GET /heima/_search
        2. {
        3. "query":{
        4. "match_all": {}
        5. }
        6. }
        1. query:代表查询对象
        2. match_all:代表查询所有

      • 匹配查询 match

        1. 查询"title"内容有"大牛"的数据
        2. GET /panfeng/_search
        3. {
        4. "query":{
        5. "match": {
        6. "title": "大牛"
        7. }
        8. }
        9. }
        10.  
        11. or关系,查询"title"内容有"大牛""手机"的数据,因为分词器会分词
        12. GET /panfeng/_search
        13. {
        14. "query":{
        15. "match": {
        16. "title": "大牛手机"
        17. }
        18. }
        19. }
        20.  
        21. and关系,查询"title"内容有"大牛"并且也含有"手机"的数据,因为分词器会分词
        22. GET /panfeng/_search
        23. {
        24. "query":{
        25. "match": {
        26. "title": {
        27. "query": "大牛手机",
        28. "operator": "and"
        29. }
        30. }
        31. }
        32. }
        33.  
        34. "大牛手机"可以分词"大牛","手机"两个词,匹配任何一个都可以,如果把1改为3不匹配任何
        35. GET /panfeng/_search
        36. {
        37. "query":{
        38. "match":{
        39. "title":{
        40. "query":"大牛手机",
        41. "minimum_should_match": 1
        42. }
        43. }
        44. }
        45. }
        46.  
        47. "大牛智能手机"可以分词"大牛","智能","手机"三个词
        48. 最小匹配3x0.66=1.98,因为1.98<2,所以能匹配三个当中任何一个词都可以
        49. GET /panfeng/_search
        50. {
        51. "query":{
        52. "match":{
        53. "title":{
        54. "query":"大牛智能手机",
        55. "minimum_should_match": "66%"
        56. }
        57. }
        58. }
        59. }
        60.  
        61. "大牛智能手机"可以分词"大牛","智能","手机"三个词
        62. 最小匹配3x0.67=2.01,因为2.01>2,所以能匹配三个当中任何两个词都可以
        63. GET /panfeng/_search
        64. {
        65. "query":{
        66. "match":{
        67. "title":{
        68. "query":"大牛智能手机",
        69. "minimum_should_match": "67%"
        70. }
        71. }
        72. }
        73. }

        匹配查询 match

      • 多字段查询 multi_match

        1. 可以匹配字段"title""name" 内容为"大牛"的数据
        2. GET /panfeng/_search
        3. {
        4. "query":{
        5. "multi_match": {
        6. "query": "大牛",
        7. "fields": [ "title", "name" ]
        8. }
        9. }
        10. }

        多字段查询 multi_match

      • 词条查询 term

        1. "title"中,可以匹配到词为"大牛"的数据
        2. GET /panfeng/_search
        3. {
        4. "query":{
        5. "term":{
        6. "title": {
        7. "value": "大牛"
        8. }
        9. }
        10. }
        11. }
        12.  
        13. 因为"大牛手机"不是一个词,所以也无法匹配到title中含有"大牛手机"的数据
        14. 因为"快快乐乐"是一个词,所以可以匹配到title中含有"快快乐乐"的数据
        15. GET /panfeng/_search
        16. {
        17. "query":{
        18. "term":{
        19. "title": {
        20. "value": "大牛手机"
        21. }
        22. }
        23. }
        24. }

        词条查询 term

      • 多词条精确查询 terms

        1. 只能匹配到title中含有"大牛"的数据,因为"大牛"是一个词,而"二蛋"不是一个词
        2. 如果换成"title": ["大牛","牛牛"],则就可以匹配到title中含有"大牛""牛牛"的数据
        3. GET /panfeng/_search
        4. {
        5. "query":{
        6. "terms":{
        7. "title": ["大牛","二蛋"]
        8. }
        9. }
        10. }

        多词条精确查询 terms

    • _source过滤

      • 直接指定字段

        1. 在查询结果的_source中只显示字段"title","price"
        2. GET /panfeng/_search
        3. {
        4. "_source": ["title","price"],
        5. "query": {
        6. "term": {
        7. "title": {
        8. "value": "大牛"
        9. }
        10. }
        11. }
        12. }

        直接指定字段

      • 指定includes和excludes

        1. includes:来指定想要显示的字段
        2. GET /panfeng/_search
        3. {
        4. "_source": {
        5. "includes":["title","price"]
        6. },
        7. "query": {
        8. "term": {
        9. "title": "大牛"
        10. }
        11. }
        12. }
        13.  
        14. excludes:来指定不想要显示的字段
        15. GET /panfeng/_search
        16. {
        17. "_source": {
        18. "excludes":["title","price"]
        19. },
        20. "query": {
        21. "term": {
        22. "title": "大牛"
        23. }
        24. }
        25. }

        指定includes和excludes

    • 结果过滤

      • 布尔组合 bool

        1. 查询title为手机,price2222或者3333的数据
        2. GET panfeng/_search
        3. {
        4. "query": {
        5. "bool": {
        6. "must": [
        7. {
        8. "match": {
        9. "title": "手机"
        10. }
        11. },
        12. {
        13. "terms": {
        14. "price": ["2222","3333"]
        15. }
        16. }
        17. ]
        18. }
        19. }
        20. }
        21.  
        22. title不为大牛并且价格不为22223333的数据
        23. GET panfeng/_search
        24. {
        25. "query": {
        26. "bool": {
        27. "must_not": [
        28. {
        29. "match": {
        30. "title": "大牛"
        31. }
        32. },
        33. {
        34. "terms": {
        35. "price": ["2222","3333"]
        36. }
        37. }
        38. ]
        39. }
        40. }
        41. }
        42.  
        43. title为大牛或者price22223333的数据
        44. GET panfeng/_search
        45. {
        46. "query": {
        47. "bool": {
        48. "should": [
        49. {
        50. "match": {
        51. "title": "大牛"
        52. }
        53. },
        54. {
        55. "terms": {
        56. "price": ["2222","3333"]
        57. }
        58. }
        59. ]
        60. }
        61. }
        62. }

        "bool"把各种其它查询通过"must"与,"must_not"非,"should"或 的方式进行组合

      • 范围查询

        1. range gt:大于 gte:大于等于 lt:小于 lte:小于等于
        2. 大于 greater than
        3. 小于 less than
        4. 等于 equal
        5.  
        6. 查询价格大于等于3.01小于5.01的数据,不可以匹配3,可以匹配3.01,可以匹配5,不可以匹配5.01
        7. GET /panfeng/_search
        8. {
        9. "query":{
        10. "range": {
        11. "price": {
        12. "gte": 3.01,
        13. "lt": 5.01
        14. }
        15. }
        16. }
        17. }

        在range中 gt:大于 gte:大于等于 lt:小于 lte:小于等于

      • 模糊查询

    • 高级查询

    • 排序

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

  • 1

Linux下,非Docker启动Elasticsearch 6.3.0,安装ik分词器插件,以及使用Kibana测试Elasticsearch,的更多相关文章

  1. Elasticsearch入门之从零开始安装ik分词器

    起因 需要在ES中使用聚合进行统计分析,但是聚合字段值为中文,ES的默认分词器对于中文支持非常不友好:会把完整的中文词语拆分为一系列独立的汉字进行聚合,显然这并不是我的初衷.我们来看个实例: POST ...

  2. 通过docker安装elasticsearch和安装ik分词器插件及安装kibana

    前提: 已经安装好docker运行环境: 步骤: 1.安装elasticsearch 6.2.2版本,目前最新版是7.2.0,这里之所以选择6.2.2是因为最新的SpringBoot2.1.6默认支持 ...

  3. Elasticsearch 7.1.1 安装 pinyin 分词器插件

    1.安装maven 安装插件前,需要用 maven 进行编译生成插件包,第一步先安装 maven yum install -y maven mvn -version Apache Maven (Red ...

  4. Linux使用Docker启动Elasticsearch并配合Kibana使用,安装ik分词器

    注意事项 这里我的Linux虚拟机的IP地址是192.168.1.3 Docker运行Elasticsearch容器之后不会立即有反应,要等一会,等待容器内部启动Elasticsearch,才可以访问 ...

  5. windows下elasticsearch安装ik分词器后无法启动

    windows下elasticsearch安装ik分词器后启动报如下图错误: 然后百度说是elasticsearch路径有空格,一看果然我的路径有空格,然后重新换个路径就好了.

  6. 【ELK】【docker】【elasticsearch】1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安装ik分词器

    系列文章:[建议从第二章开始] [ELK][docker][elasticsearch]1. 使用Docker和Elasticsearch+ kibana 5.6.9 搭建全文本搜索引擎应用 集群,安 ...

  7. docker上安装elasticsearch和ik分词器插件和header,实现分词功能

    docker run -di --name=tensquare_es -p 9200: -p 9300:9300 elasticsearch:5.6.8 创建elasticsearch容器(如果版本不 ...

  8. Elasticsearch下安装ik分词器

    安装ik分词器(必须安装maven) 上传相应jar包 解压到相应目录 unzip elasticsearch-analysis-ik-master.zip(zip包) cp -r elasticse ...

  9. elasticsearch安装ik分词器(极速版)

    简介:下面讲有我已经打包并且编辑过的zip包,你可以在下面下载即可. 1.下载zip包.elasticsearch-analysis-ik-1.8.0.jar下面有附件链接[ik-安装包.zip],下 ...

随机推荐

  1. 实现网站https

    双击上面的服务器证书 如下图:

  2. Windows Presentation Foundation (WPF)中的命令(Commands)简述

    原文:Windows Presentation Foundation (WPF)中的命令(Commands)简述 ------------------------------------------- ...

  3. 探索jquery方法中empty,remove与detach的区别

    最近一直疑惑此三种方法的具体区别在于何处,随即想弄明白其具体的区别,看了一些说明,也依照官方文档,终于把这三个方法弄明白了,果然功夫不负有心人,继续努力. 上正文,先简单介绍下这三种方法 .empty ...

  4. ubuntu12.04单卡server(mentohust认证)再加上交换机做路由软件共享上网

    最近成立了实验室的网络环境中,通过交换机连接的所有主机实验室.想要一个通过该server(单卡)做网关,使用mentohust认证外网,然后内网中的其它主机通过此网关来连接外网. 1.首先在serve ...

  5. 使用StringBuilder与SqlParameter

    好处: 防止sql注入:占用内存更少 例子: 传参有业务查询条件startDate,endDate,A,每页数据个数pageSize,当前查询页码pageIndex string sql = @&qu ...

  6. Telnet协议详解(远程登陆协议)

    1. 概述 Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议.Telnet协议的目的是提供一个相对通用的,双向的,面向八位字节的通信方法,允许界面终端设备和面向终 ...

  7. 《Docker 实战》第三章 Docker Hub 寻宝游戏

    # 秘密仓库和密码 docker run --rm -it --name password dockerinaction/ch3_ex2_huntanswer

  8. 【C#】wpf添加gif动图支持

    原文:[C#]wpf添加gif动图支持 1.nuget里下载XamlAnimatedGif包,然后安装. 2.添加XamlAnimatedGif包的命名空间:xmlns:gif="https ...

  9. Win10《芒果TV》内测版现已支持在国行版 Xbox One 下载体验

    Win10<芒果TV>内测版现已支持在国行版 Xbox One 下载体验 关于国行为什么无法从商店下载安装芒果TV内测版(来自微软) 1.截至到目前<芒果TV - Preview&g ...

  10. 零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下)

    原文:零元学Expression Blend 4 - Chapter 38 看如何使用Clip修出想要的完美曲线(下) 你可以把Clip想成是一个遮罩,运用遮罩达到我们想要的效果 所以在这里我们把文字 ...