本文档将会持续更新记录使用ES7的过程中遇到的问题以及各种小技巧,小工具;欢迎各位码又收藏
es与kibana只能使用localhost访问的问题解决
-
elasticsearch
找到config/elasticsearch.yml文件,配置network.host: 0.0.0.0
-
kibana
找到config/kibana.yml文件,配置server.host: “0.0.0.0”
ps -ef|grep kibana找不到进程的问题
使用fuser -n tcp 5601找到进程号
es导入本地json文件数据
在json文件路径下执行命令,其中accounts.json为数据文件名
curl -H "Content-Type: application/json" -XPOST "localhost:9200/<indexname>/_bulk?pretty&refresh" --data-binary "@accounts.json"
判断某个索引某个字段某个值时的分词效果
GET /<indexname>/_analyze
{
"field": "<field1>",
"text": "Mill Lane"
}
结果说明
如下所示,该索引对Mill Lane分词后的结果是两个词,此时使用term查询时,只有输入这2个值中的一个才有结果
注意:分词后英文会全部转成小写哦
{
"tokens" : [
{
"token" : "mill",
"start_offset" : 0,
"end_offset" : 4,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "lane",
"start_offset" : 5,
"end_offset" : 9,
"type" : "<ALPHANUM>",
"position" : 1
}
]
}
判断某个字段使用某个分词器时的分词效果
使用ik分词器
GET /_analyze
{
"analyzer": "ik_max_word",
"text": "中华人民共和国福建省福州市马尾区名称中心铂悦府"
}
结果说明
{
"tokens" : [
{
"token" : "中华人民共和国",
"start_offset" : 0,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "中华人民",
"start_offset" : 0,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : "中华",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "华人",
"start_offset" : 1,
"end_offset" : 3,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : "人民共和国",
"start_offset" : 2,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 4
},
{
"token" : "人民",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 5
},
{
"token" : "共和国",
"start_offset" : 4,
"end_offset" : 7,
"type" : "CN_WORD",
"position" : 6
},
{
"token" : "共和",
"start_offset" : 4,
"end_offset" : 6,
"type" : "CN_WORD",
"position" : 7
},
{
"token" : "国",
"start_offset" : 6,
"end_offset" : 7,
"type" : "CN_CHAR",
"position" : 8
},
{
"token" : "福建省",
"start_offset" : 7,
"end_offset" : 10,
"type" : "CN_WORD",
"position" : 9
},
{
"token" : "福建",
"start_offset" : 7,
"end_offset" : 9,
"type" : "CN_WORD",
"position" : 10
},
{
"token" : "省",
"start_offset" : 9,
"end_offset" : 10,
"type" : "CN_CHAR",
"position" : 11
},
{
"token" : "福州市",
"start_offset" : 10,
"end_offset" : 13,
"type" : "CN_WORD",
"position" : 12
},
{
"token" : "福州",
"start_offset" : 10,
"end_offset" : 12,
"type" : "CN_WORD",
"position" : 13
},
{
"token" : "市",
"start_offset" : 12,
"end_offset" : 13,
"type" : "CN_CHAR",
"position" : 14
},
{
"token" : "马尾区",
"start_offset" : 13,
"end_offset" : 16,
"type" : "CN_WORD",
"position" : 15
},
{
"token" : "马尾",
"start_offset" : 13,
"end_offset" : 15,
"type" : "CN_WORD",
"position" : 16
},
{
"token" : "区",
"start_offset" : 15,
"end_offset" : 16,
"type" : "CN_CHAR",
"position" : 17
},
{
"token" : "名称",
"start_offset" : 16,
"end_offset" : 18,
"type" : "CN_WORD",
"position" : 18
},
{
"token" : "中心",
"start_offset" : 18,
"end_offset" : 20,
"type" : "CN_WORD",
"position" : 19
},
{
"token" : "铂",
"start_offset" : 20,
"end_offset" : 21,
"type" : "CN_CHAR",
"position" : 20
},
{
"token" : "悦",
"start_offset" : 21,
"end_offset" : 22,
"type" : "CN_CHAR",
"position" : 21
},
{
"token" : "府",
"start_offset" : 22,
"end_offset" : 23,
"type" : "CN_CHAR",
"position" : 22
}
]
}
安装ik分词器
1、下载与es对应版本的ik分词器插件包,下载地址:https://github.com/medcl/elasticsearch-analysis-ik/releases
2、解压放到es安装包的plugins路径底下,根路径取名ik(名字可以任意)
3、重启es
查看是否有bulk queue堆积
GET _cat/thread_pool/bulk?s=queue:desc&v
调优专项
内存设置
1、只能分配机器的一半内存给Elasticsearch。另一半要给Lucene使用
2、机器内存即使很充足,也不要分配内存超过32G给Elasticsearch(小于32G的时候会使用内存对象指针压缩技术)
3、关闭swap,内存交换会强烈影响Elasticsearch性能
官方推荐大小
-
Shard 大小官方推荐值为 20-40GB,一般是30GB
-
每个GB JVM堆内存支持的分片数不超过20个
中台一期项目目前(202010404)总共内存680GB,所以最大的分片数应该是13000左右,
- 每个节点的JVM最大32GB(一般31GB)
打开性能查看选项
profile:true
要设置多少分片
ElasticSearch推荐的最大JVM堆空间是30~32G, 所以把你的分片最大容量限制为30GB, 然后再对分片数量做合理估算. 例如, 你认为你的数据能达到200GB, 我们推荐你最多分配7到8个分片。
总之, 不要现在就为你可能在三年后才能达到的10TB数据做过多分配. 如果真到那一天, 你也会很早感知到性能变化的
1) “我应该有多少个分片?”
答: 每个节点的分片数量保持在低于每1GB堆内存对应集群的分片在20-25之间。
2) “我的分片应该有多大”?
答:分片大小为50GB通常被界定为适用于各种用例的限制。
Every shard uses memory and CPU resources. In most cases, a small set of large shards uses fewer resources than many small shards.
每个碎片使用内存和CPU资源。在大多数情况下,一小组大碎片比许多小碎片使用更少的资源。
调优最佳实践
最佳实践策略
1、删除索引而不是仅删除文档