一、Windows安装elasticsearch
1、安装JDK,至少1.8.0_73以上版本,验证:java -version
2、下载和解压缩Elasticsearch安装包,查看目录结构
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
目录结构:
3、配置文件
位置:使用zip、tar安装,配置文件的地址在安装目录的config下
常用的配置项如下:
cluster.name:
配置elasticsearch的集群名称,默认是elasticsearch。建议修改成一个有意义的名称。
node.name:
节点名,通常一台物理服务器就是一个节点,es会默认随机指定一个名字,建议指定一个有意义的名称,方便管理
一个或多个节点组成一个cluster集群,集群是一个逻辑的概念,节点是物理概念,后边章节会详细介绍。
path.conf:
设置配置文件的存储路径,tar或zip包安装默认在es根目录下的config文件夹,rpm安装默认在/etc/ elasticsearch
path.data:
设置索引数据的存储路径,默认是es根目录下的data文件夹,可以设置多个存储路径,用逗号隔开。
path.logs:
设置日志文件的存储路径,默认是es根目录下的logs文件夹
path.plugins:
设置插件的存放路径,默认是es根目录下的plugins文件夹
bootstrap.memory_lock: true
设置为true可以锁住ES使用的内存,避免内存与swap分区交换数据。
network.host:
设置绑定主机的ip地址,设置为0.0.0.0表示绑定任何ip,允许外网访问,生产环境建议设置为具体的ip。
http.port: 9200
设置对外服务的http端口,默认为9200。
transport.tcp.port: 9300 集群结点之间通信端口
node.master:
指定该节点是否有资格被选举成为master结点,默认是true,如果原来的master宕机会重新选举新的master。
node.data:
指定该节点是否存储索引数据,默认为true。
discovery.zen.ping.unicast.hosts: ["host1:port", "host2:port", "..."]
设置集群中master节点的初始列表。
discovery.zen.ping.timeout: 3s
设置ES自动发现节点连接超时的时间,默认为3秒,如果网络延迟高可设置大些。
discovery.zen.minimum_master_nodes:
主结点数量的最少值 ,此值的公式为:(master_eligible_nodes / 2) + 1 ,比如:有3个符合要求的主结点,那么这里要设置为2。
node.max_local_storage_nodes:
单机允许的最大存储结点数,通常单机启动一个结点建议设置为1,开发环境如果单机启动多个节点可设置大于1。
jvm.options:设置最小及最大的JVM堆内存大小
在jvm.options中设置 -Xms和-Xmx:
-
两个值设置为相等
-
将Xmx 设置为不超过物理内存的一半。
4、启动Elasticsearch:bin\elasticsearch.bat
,es的特点就是开箱即,无需配置,启动即可
注意:es7 windows版本不支持机器学习,所以config\elasticsearch.yml
中添加如下几个参数:
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
xpack.ml.enabled: false
http.cors.enabled: true
http.cors.allow-origin: /.*/
5、检查ES是否启动成功:浏览器访问http://localhost:9200/
解释:
- name: node名称,取自机器的hostname
- cluster_name: 集群名称(默认的集群名称就是elasticsearch)
- version.number: 7.3.2,es版本号
- version.lucene_version:封装的lucene版本号
6、浏览器访问 http://localhost:9200/_cluster/health 查询集群状态
{
"cluster_name": "elasticsearch",
"status": "green",
"timed_out": false,
"number_of_nodes": 1,
"number_of_data_nodes": 1,
"active_primary_shards": 0,
"active_shards": 0,
"relocating_shards": 0,
"initializing_shards": 0,
"unassigned_shards": 0,
"delayed_unassigned_shards": 0,
"number_of_pending_tasks": 0,
"number_of_in_flight_fetch": 0,
"task_max_waiting_in_queue_millis": 0,
"active_shards_percent_as_number": 100
}
解释:
Status:集群状态。green
所有分片可用。Yellow
所有主分片可用。Red
主分片不可用,集群不可用。
二、 Windows安装Kibana
1、下载,解压kibana
下载地址:https://www.elastic.co/cn/downloads/kibana
2、启动Kibana:bin\kibana.bat
3、浏览器访问 http://localhost:5601 进入Dev Tools界面
三、 Windows安装IK分词器
1、根据es版本下载相应版本包解压(es/plugins/ik)
下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
2、重启es
ik分词器基础知识
-
ik_max_word
: 会将文本做最细粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国,中华人民,中华,华人,人民共和国,人民大会堂,人民大会,大会堂”,会穷尽各种可能的组合 -
ik_smart
: 会做最粗粒度的拆分,比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国,人民大会堂”
ik分词器的使用
存储时,使用ik_max_word,搜索时,使用ik_smart
//存储
PUT /my_index
{
"mappings": {
"properties": {
"text": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
}
}
}
}
//搜索
GET /my_index/_search?q=中华人民共和国人民大会堂
ik配置文件
-
ik配置文件地址:es/plugins/ik/config目录
-
IKAnalyzer.cfg.xml:用来配置自定义词库
-
main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起
-
preposition.dic: 介词
-
quantifier.dic:放了一些单位相关的词,量词
-
suffix.dic:放了一些后缀
-
surname.dic:中国的姓氏
-
stopword.dic:英文停用词
ik原生最重要的两个配置文件
-
main.dic:包含了原生的中文词语,会按照这个里面的词语去分词
-
stopword.dic:包含了英文的停用词
自定义词库
-
自己建立词库:每年都会涌现一些特殊的流行词,网红,鬼畜,一般不会在ik的原生词典里,需要自己补充自己的最新的词语,到ik的词库里面
- IKAnalyzer.cfg.xml:ext_dict,创建mydict.dic,补充自己的词语,然后需要重启es,才能生效
-
自己建立停用词库:比如了,的,啥,么,我们可能并不想去建立索引,让人家搜索
- custom/ext_stopword.dic,已经有了常用的中文停用词,可以补充自己的停用词,然后重启es