jps查看ElasticSearch进程-- main class information unavailable

这是由于在关闭ElasticSearch进程时,没有关闭干净,进入/tmp目录,删除elasticsearch-*相关的内容

 

版本6.x的elasticsearch包里面没有InetSocketTransportAddress?

6.x之后是使用更高效的netty4做异步通信的,可以使用下面官方提供的方法

https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html

 

Elasticsearch部分节点不能发现集群(脑裂)问题处理

## 如何避免脑裂问题 ##

**避免脑裂现象**

用到的一个参数是:discovery.zen.minimum_master_nodes。这个参数决定了要选举一个Master需要多少个节点(最少候选节点数)。默认值是1。根据一般经验这个一般设置成 N/2 + 1,N是集群中节点的数量,例如一个有3个节点的集群,minimum_master_nodes 应该被设置成 3/2 + 1 = 2(向下取整)。
用到的另外一个参数是:discovery.zen.ping.timeout,等待ping响应的超时时间,默认值是3秒。如果网络缓慢或拥塞,建议略微调大这个值。这个参数不仅仅适应更高的网络延迟,也适用于在一个由于超负荷而响应缓慢的节点的情况。
如果您刚开始使用elasticsearch,建议搭建拥有3个节点的集群,这种方式可以把discovery.zen.minimum_master_nodes设置成2,这样就限制了发生脑裂现象的可能,且保持着高度的可用性:如果你设置了副本,在丢失一个节点的情况下,集群仍可运行。

 

6.x新语法变化:

#语法出现变化
curl -H "Content-Type: application/json" -XGET 'http://192.168.177.11:9200/_analyze?pretty&analyzer=ik_max_word' -d '联想是全球最大的笔记本厂商'

#本句语法正确
curl -H "Content-Type: application/json" -XGET 'http://192.168.177.11:9200/_analyze' -d'
{
    "analyzer" : "ik_max_word"
    "text":"联想是全球最大的笔记本厂商"
}'

聚合查询时,报错Fielddata is disabled on text fields by default

text类型的数据会按照倒排索引的方式进行分词,官方文档解释该字段会被加载到堆中,消耗大量的堆空间,导致用户体验延迟,所以默认情况下禁用fielddata字段,默认值为false;

但是对此文本字段上的脚本进行排序、聚合或访问值时会出现:Fielddata is disabled on text fields by default 异常

即若使用聚合,需设置此字段的fielddata值为true;

 

参考博客:https://blog.csdn.net/u014722903/article/details/80365154

 

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐