zoukankan      html  css  js  c++  java
  • elasticsearch windows下安装

    一:elasticsearch windows下安装:

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

    2  在cmd命令行下, 进入到 ../bin/目录,运行 Service install 命令,得到

    3 再输入servicemanager,得到

    修改“Startup type “ ,从Manual到Automatic。
    然后点击”Start“, elasticsearch将立即开始运行。
    在浏览器中输入http://localhost:9200,得到
    {
    • name: "Masque",
    • cluster_name: "elasticsearch",
    • version: 
       
      {
      • number: "2.2.1",
      • build_hash: "d045fc29d1932bce18b2e65ab8b297fbf6cd41a1",
      • build_timestamp: "2016-03-09T09:38:54Z",
      • build_snapshot: false,
      • lucene_version: "5.4.1"
      },
    • tagline: "You Know, for Search"
    }
    证明安装成功

    二:elasticsearch head插件:

    elasticsearch-head是一个elasticsearch的集群管理工具,它是完全由html5编写的独立网页程序,你可以通过插件把它集成到es。在elasticsearch安装完以后

    1.https://github.com/mobz/elasticsearch-head下载zip 解压
    2.建立elasticsearch-1.0.0pluginshead\_site文件
    3.将解压后的elasticsearch-head-master文件夹下的文件copy到_site
    4.运行es
    5.打开http://localhost:9200/_plugin/head/ 如图:

    三:elasticsearch bigdesk插件:

    bigdesk是elasticsearch的一个集群监控工具,可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等,下载地址: https://github.com/lukas-vlcek/bigdesk。和head一样,它也是个独立的网页程序,使用方式和head一样。

    1.https://github.com/lukas-vlcek/bigdesk下载zip 解压
    2.建立elasticsearch-1.0.0pluginsigdesk\_site文件
    3.将解压后的bigdesk-master文件夹下的文件copy到_site
    4.运行es
    5.打开http://localhost:9200/_plugin/bigdesk/ 
    插件说明:http://blog.csdn.net/laigood/article/details/8207990

    详解elasticsearch

    一  elasticsearch介绍:

    elasticsearch 的索引index:跟lucene索引相同,类似于关系型数据库的一张表,mogodb的一个集合

    elasticsearch 的文档document:跟lucene文档相同,类似于一张表的一条记录

    elasticsearch 的文档类型:一个索引可以存储许多不同用途的对象,例如博客索引我们可以存储文章信息 和评论信息,文档类型可以帮我们区分它们,而且每个文档可以有不同的结构;但是将文档划分为不同类型有一些限制条件:例如不同的文档类型针对同一个字段不能设置不同的字段类型;

    支持 集群 分片 和副本

    分片:

    当需要存储大规模数据时,由于内存或磁盘空间的限制,或者cpu计算能力的问题,不能达到复杂功能的要求时;可以考虑将数据拆分,每部分是一个单独的索引,称为分片;

    每个分片可以存储在不同节点上,当需要查询一个有多个分片构成的索引时,elasticsearch会将查询发送到每个相关的分片上,并将结果合并;这个过程对整个应用而言是透明的;

    副本:

    为了提高查询的吞吐量或实现高可用,可以启用分片副本功能;副本分片是对原始分片的一个精确拷贝,原始分片被称为主分片;对索引的所有修改和操作都作用在主分片上,每隔主分片可以有0个或多个副本,当主分片不可用时集群可以将一个副本分片提升为主分片;

    elasticsearch 配置信息查看命令:

    curl -XGET http://localhost:9200/_cluster/health?pretty --查询elasticsearch的健康信息

    curl -XGET http://localhost:9200/ --查询实例的相关信息
    curl -XGET http://localhost:9200/_cluster/nodes/ --得到集群中节点的相关信息
    curl -XPOST http://localhost:9200/_cluster/nodes/_shutdown --关闭整个集群
    curl -XPOST http://localhost:9200/_cluster/nodes/aaaa/_shutdown --关闭集群中指定节点
    curl -XPOST http://localhost:9200/lishuai   --创建名为lishuai的索引
    curl -XDELETE http://localhost:9200/lishuai   --删除名为lishuai的索引

    elasticsearch 索引的增删改:

    使用命令行发送请求总是报错,此处也可以使用 postman插件发送rest请求:添加一条数据:

    其他增删改查与rest动词一致

    二  elasticsearch中的模式映射:

    1  curl  -XPUT  http://127.0.0.1:9200/proweb/product/1  -d  '{"name":"阿克苏苹果","price":12.8}'    

    命令会在elasticsearch中创建索引proweb,并在此索引中创建文档类型product ,1是指定的文档标识符,不指定会自动生成  -d后面的是插入到此文档中的数据

    模式映射用于指定索引的结构,每个索引可以有多个类型,每个类型的结构也可以不一样,例如索引中product文档类型可以有:name字段和price字段,log文档类型中可以有logtype,logcontent,logtimer;每个字段的类型也可能都不一样;elasticsearch支持自动识别文档类型结构,就像上面1中你可以直接往索引中插入数据,他会自动识别他的索引文档结构(mappings中就是):

    {

    • "state": "open",
    • "settings": {
      • "index": {
        • "creation_date": "1460031215343",
        • "number_of_shards": "5",
        • "number_of_replicas": "1",
        • "uuid": "mJGD5NHXTY-lKHTmqzlRWQ",
        • "version": {
          • "created": "2020199"
          }
        }
      },
    • "mappings": {
      • "product": {
        • "properties": {
          • "price": {
            • "type": "double"
            },
          • "name": {
            • "type": "string"
            }
          }
        }
      },
    • "aliases": [ ]

    }

    手动指定模式映射:

    方法:

    curl -XPOST 'http://127.0.0.1:9200/logweb'  -d  @posts111.json    创建索引logweb并发送posts111文件的内容到elasticsearc,创建索引文档结构(字段名和类型和属性)

    你也可以直接通过postman发送posts111文件里的json对象到elasticsearch创建索引和索引文档结构;

    posts111.json 里的内容其实是一个json对象:

    mappings结构说明:

    一个索引中所有的类型结构定义都嵌套在mappings对象里,多个文档的结构以,号分割:就像logweb和logmobile;文档类型结构中所有的字段都包含在properties对象中;

    每一个字段是结构是: “字段名”:{type:字段类型,通用属性key:通用属性value}       例如:  "logtype": {"type":   "long", "index":  "not_analyzed"}

    多个字段field以,号隔开;


    {
        "mappings": {
            "logweb": {
                "properties": {
                    "logtype": {
                        "type":   "long",
                        "index":  "not_analyzed"
                    },"logcontent": {
                        "type":   "string",
                        "index":  "analyzed"
                    }
                }
            },"logmobile": {
                "properties": {
                    "logtype": {
                        "type":   "long",
                        "index":  "not_analyzed"
                    },"logcontent": {
                        "type":   "string",
                        "index":  "analyzed"
                    },"logtime": {
                        "type":   "date",
                        "index":  "analyzed"
                    }
                }
            }
        }
    }

    字段类型说明:

    核心类型 通用属性 特定属性
    字符串型 index 值:analyzed(被索引被分析被搜索) ,no , not_analyzed(不被分析被索引被搜索)
    store 值:yes,no 默认值no(不能再结果中返回字段的原始值,即没有存储原始值)
    boost 默认值1 定义该字段在文档中的权重
    null_value 指定某字段在索引的文档中不存在时应写入什么值
    include_in_all 该属性指定某字段是否应被包含在_all字段中
    index_name
    term_vector向量设置,ignore_above 字段的最大长度,omit_norms 是否禁用lucene norms计算,
    index_option,analyzer,index_analyzer,search_analyzer
    数值型 (long float double..) Precision_step 设置为字段的每个取值设置的项数,值越低生成的项越多
    执行range时的速度越快,索引也越大,默认值4   ignore_malformed是否忽略格式错误的数值 默认值false
    日期型 format用于指定日期格式  Precision_step 设置为字段的每个取值设置的项数,值越低生成的项越多
    执行range时的速度越快,索引也越大,默认值4   ignore_malformed是否忽略格式错误的数值 默认值false
    布尔型
    二进制 只支持index_name属性




    multi_field 它允许我们将多个核心类型映射到同一个字段,并且进行不同的分析,例如

    "name":{"type":"multi_field","fields":{"name":{"type":"string","index":"analyzed"},"facet":{"type":"string","index":"not_analyzed"}}}

    elasticsearch将会产生两个不同的字段,使用name和name.facte引用

    elasticsearch  Linux安装:

    1 安装jdk 配置环境变量

    2 安装elasticsearch   //可能涉及针对非root账号提权的问题,gedit /etc/sudoers 命令添加账号的sodo权限

    3 安装marvel/license/head/kopf插件 

    4 在非root账号下运行 elasticsearch    

    5 修改elasticsearch.yml 在 /elasticsearch_2.3.3/config  

    6 针对9200端口添加防火墙例外在 /etc/sysconfig/iptables

  • 相关阅读:
    微信小程序学习随笔
    SqlServer索引假脱机的解决
    web服务器出现大量CLOSE_WAIT连接的前因后果
    SqlServer和mysql字段拼接方法
    使用beego创建员工加班调休系统
    在c#程序中初步使用redis
    使用golang实现批量发送面试邀请邮件
    记c# rabbitmq的使用
    项目中使用mongodb的尝试
    手机集成支付宝支付功能的注意事项
  • 原文地址:https://www.cnblogs.com/shaner/p/5630563.html
Copyright © 2011-2022 走看看