公文高手,超级方便的公文写作神器! 立即了解


ES问题总结

第一篇。es问题总结elasticsearch/elasticsearch-sqlelasticsearch-sql是基于查询es的类sql实现。其中采用的是阿里的druid框架,其中elasticlexer和elasticsqlexprparser都是对druid中的mysql的进行了扩展。

1.错误信息:exceptioninthread"main"nonodeavailableexception[noneoftheconfigurednodesareavailable:解决方法:增加settings设置(红色标记)

settingssettings=settings.settingsbuilder

.put("cluster.name","elasticsearchdemo").build;clientclient=transportclient.builder.addplugin(deletebyqueryplugin.class).settings(settings).build.addtransportaddresses(address1,address2);2.问题2->term查询不到数据:创建索引的时候没有说明不使用分词器(默认使用分词器),当用term查询时,原来数据中的大写转换成小写,可以在测试分词器中测试一下。如果仍然用大写字母查询,导致查询不到数据。如{"term":{"gender":"f"}},必须写成{"term":{"gender":"f"}}3问题3注意各种默认值,比如es-sql中默认limit为200,term中size默认为10.例子如下:

searchresponseresponse=client.preparesearch(test_index)

.setsearchtype(searchtype.query_then_fetch)

.setquery(querybuilder).addaggregation(aggregationbuilders.terms("ageagg").field("age").size(100)

.subaggregation(aggregationbuilders.stats("agestat").field("age")))

.execute.actionget;其中按照age分组统计,其中size默认为10(红色部分).不确定可以写size(0),代码自动写为maxint。

3.问题.(脑裂)今天集群中的健康值为yellow,查看日志报错为网络异常。错误的时间已经过去10个小时,现在网络也没有异常。刚开始的时候一直怀疑网络故障,问题一直找不到突破口,分别访问没有在集群的节点,也是没有问题的。网上搜索说是由于ping.timeout默认为3秒,如果超时就会出现多个集群的现象。联想到本系统中的网络异常,发现为两个集群。可查看每个节点的集群状态的primary属性。修改方式:

discovery.zen.ping.timeout:60sdiscovery.zen.minimum_master_nodes:

34.elasticsearch-sql查询语句


(未完,全文共11677字,当前显示1334字)

(请认真阅读下面的提示信息)


温馨提示

此文章为6点公文网原创,稍加修改便可使用。只有正式会员才能完整阅读,请理解!

会员不仅可以阅读完整文章,而且可以下载WORD版文件

已经注册:立即登录>>

尚未注册:立即注册>>

6点公文网 ,让我们一起6点下班!