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

原文地址:https://www.cnblogs.com/shaner/p/5630563.html