elasticsearch-java
文章平均质量分 73
迷途码界
一些原理解读,经验分享
segmentfault:迷途码界(https://segmentfault.com/u/cclovel/articles)
展开
-
Elasticsearch Java API 的使用(7)—多条件查询
多条件设置//多条件设置MatchPhraseQueryBuilder mpq1 = QueryBuilders .matchPhraseQuery("pointid","W3.UNIT1.10LBG01CP301");MatchPhraseQueryBuilder mpq2 = QueryBuilders .matchPhrase原创 2017-09-05 08:38:56 · 23623 阅读 · 1 评论 -
Elasticsearch Java API 的使用(8)—Scroll (游标)API详解
滚动查询Elasticsearch中进行大数据量查询时,往往因为设备、网络传输问题影响查询数据的效率;Elasticsearch中提供了Scroll(游标)的方式对数据进行少量多批次的滚动查询,来提高查询效率。public class Scroll { public static void main(String[] args) { try{ long s原创 2017-09-05 08:40:31 · 12558 阅读 · 0 评论 -
Elasticsearch Java API 的使用(9)— Bluk的批量原理 & Bulk大数据量的批量上传示例
Elasticsearch对多个文档进行索引的简便方法。Bulk api的支持可以实现一次请求执行批量的添加、删除、更新等操作。Bulk操作使用的是UDP协议,UDP无法确保与ElasticSearch服务器通信时不丢失数据。 将数据累计到一定数量进行批量上传,大大加快数据上传速度。public class Bulk implements WriteRequest{ public stat原创 2017-09-05 08:41:57 · 2974 阅读 · 0 评论 -
Elasticsearch Java API 的使用(11)—优化索引创建之mapping设置
优化索引创建all字段是把所有其它字段中的值,以空格为分隔符组成一个大字符串,然后被分析和索引,但是不存储,也就是说它能被查询,但不能被取回显示。_all能让你在不知道要查找的内容是属于哪个具体字段的情况下进行搜索,例如:PUT my_index/user/1 { "first_name": "John", "last_name": "Smith&原创 2017-09-05 08:43:48 · 5094 阅读 · 0 评论 -
Elasticsearch Java API 的使用(12)—度量聚合之一
度量聚合从文档中提取出来的值并进行计算。这些值通常从文档中的字段(使用数据字段)中提取出来,单也可以使用脚本进行计算。 数字型度量聚合是一种特殊类型的度量聚合,输出数字型的值。聚合输出一个数字指标(例如平均值聚合)称之为单值数字型度量聚合,产生多个指标值(例如统计聚合)称之为多值数字型度量聚合。当这些聚合直接作为一些分组聚合的子聚合时,单值和多值数字型度量聚合的内容就会发挥巨大的作用。例如分组聚合原创 2017-11-22 14:38:16 · 3042 阅读 · 0 评论 -
Elasticsearch Java API 的使用(13)—分组聚合之一
分组聚和不像度量聚合那样通过字段进行计算,而是根据文档创建分组。每个聚合都关联一个标准(取决于聚合的类型),决定了一个文档在当前的条件下是否会“划入”分组中。 换句话说,分组实际上定义了一个文档集。除了这些分组之外,分组聚和也会计算和返回“划入”每个分组中文档的数量。 与度量聚合不同,分组聚合可以拥有子聚合。这些子聚合可以聚合由它们的“父”聚合创建分组。 分组集合有不同的类型,对应着不同的“分原创 2017-11-22 17:32:14 · 6103 阅读 · 3 评论 -
Elasticsearch Java API 的使用(14)—优化索引创建之setting设置、写入优化
创建索引优化一、索引刷新间隔调整:refresh_interval默认情况下索引的refresh_interval为1秒,这意味着数据写1秒后就可以被搜索到,每次索引的 refresh 会产生一个新的 lucene 段,这会导致频繁的 segment merge 行为,如果你不需要这么高的搜索实时性,应该降低索引refresh 周期(即你可能想优化索引速度而不是近实时搜索, 可以通过设...原创 2018-08-06 11:52:58 · 9512 阅读 · 0 评论 -
Elasticsearch Java API 的使用(15)—实现批量操作(mget&bulk)
Java实现批量操作(mget&bulk)mget批量获取使用MultiGetResponsepublic class EsMget{ public void updateIndex(TransportClient client){ MultiGetResponse response = client.prepareMultiGet() ...原创 2018-09-06 11:08:17 · 2546 阅读 · 0 评论 -
Elasticsearch Java API 的使用(16)—实现match_all查询、match查询 和 multimath查询
match_all 查询所有public class EsMatchAll{ public void updateIndex(TransportClient client){ //查询所有(match_all) QueryBuilder qb = QueryBuilders.matchAllQuery(); SearchResponse s...原创 2018-09-06 12:06:13 · 11425 阅读 · 0 评论 -
Elasticsearch Java API 的使用(17)—实现term查询、terms查询
term查询 trem查询只可指定查询一个字段对应单个词条public class EsMatchAll{ public void updateIndex(TransportClient client){ //查询所有(match_all) QueryBuilder qb = QueryBuilders.termQuery("interests", "c原创 2018-09-06 14:36:32 · 7742 阅读 · 0 评论 -
Elasticsearch Java API 的使用(18)—实现range(范围)、prefix(前缀)、wildcard(通配符)、fuzzy(模糊)、type(_type)、ids(_id)查询
range查询 范围查询使用rangeQuerypublic class EsMatchAll{ public void updateIndex(TransportClient client){ //范围查询(range) QueryBuilder qb = QueryBuilders.rangeQuery("birthdaty") ...原创 2018-09-06 14:56:14 · 3851 阅读 · 0 评论 -
Elasticsearch Java API 的使用(19)—实现常用聚合查询(max聚合、min聚合、avg聚合、sum聚合、cardinality聚合)
max聚合查询 最大值聚合查询使用public class EsAgg throws UnknownHostException{ public void maxAgg(TransportClient client){ //最大值聚合查询(max) AggregationBuilder agg = AggregationBuilders.max("aggM...原创 2018-09-06 16:03:44 · 2561 阅读 · 6 评论 -
Elasticsearch Java API 的使用(20)—实现query_string
常用词查询 常用词查询使用commonTermsQuerypublic class EsQueryString throws UnknownHostException{ public void queryString(TransportClient client){ //commonTermsQuery查询 Querybuilder build = Que...原创 2018-09-06 18:01:25 · 3609 阅读 · 0 评论 -
Elasticsearch Java API 的使用(21)—实现组合查询
组合查询 使用boolQuery实现组合查询public class EsCommonTerms throws UnknownHostException{ public void queryString(TransportClient client){ //bool实现组合查询,must表示必须满足,mustNot表示必须不满足,should表示可以满足,filter表...原创 2018-09-06 18:44:15 · 2393 阅读 · 0 评论 -
Elasticsearch Java API 的使用(22)—实现桶聚合
分组聚合 使用terms时间分组集合public class EsTermsAgg throws UnknownHostException{ public void TermsAgg(TransportClient client){ AggregationBuilder agg = AggregationBuilders.terms("terms").field("ag...原创 2018-09-06 19:58:22 · 2367 阅读 · 0 评论 -
Elasticsearch Java API 的使用(6)—时间聚合
java时间聚合public class EsAggregation{ public void searchAggregation(TransportClient client){ AggregationBuilder aggregation = AggregationBuilders .dateRange("agg") .fi原创 2017-09-05 08:37:13 · 4761 阅读 · 0 评论 -
Elasticsearch Java API 的使用(5)— 范围查询(时间范围查询示例)
java时间范围查询public class EsRange{ public void RangeSearch(TransportClient client){ //时间范围的设定 RangeQueryBuilder rangequerybuilder = QueryBuilders .rangeQuery("input原创 2017-09-05 08:35:45 · 49515 阅读 · 11 评论 -
Elasticsearch Java API 的使用(10)—在Spring框架中建立持久化连接
1、问题后台跟Elasticsearch打交道需要建立起起客户端的连接,才能对Elasticsearch进行读写操作,频繁的建立连接、断开,将降低Elasticsearch的工作效率;建立持久化将减少后台与Elasticsearch建立客户端连接的时间,大大提高工作效率。 通过spring的配置文件将Elasticsearch以注入的方式建立持久化的连接将可以解决这个问题。2、解决:A、配置Spri原创 2017-09-04 16:22:54 · 1199 阅读 · 0 评论 -
Elasticsearch Java API 的使用(1)—创建客户端
Java建立客户端调用API方法前提,通过putty串行接口连接软件(选择SSH)开启安装在Linux环境下的elasticsearch5.1.2的服务。需要注意的几点: 1、cluster.name是安装elasticsearch时设置的名称 2、调用服务时xxx.xxx.xxx.xxx写的是虚拟机的ip 3、端口填写elasticsearch默认的9300端口public class原创 2017-09-04 16:27:18 · 1742 阅读 · 3 评论 -
Elasticsearch Java API 的使用(2)—创建索引
Java创建索引创建索引前需要建立elasticsearch客户端,可查看Elasticsearch Java API 的使用(1)—创建客户端public class EsIndex{ public void CreateIndex(TransportClient client){ CreateIndexRequestBuilder cib=client.admin()原创 2017-09-04 16:28:48 · 6865 阅读 · 0 评论 -
Elasticsearch Java API 的使用(3)—添加索引 & 删除索引 & 根据条件删除索引数据
Java添加索引public class EsAddIndex{ public void addIndex(TransportClient client){ Date time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse("201原创 2017-09-04 16:29:58 · 4902 阅读 · 0 评论 -
Elasticsearch Java API 的使用(4)—更新索引(update & upset)与 Bulk的批量更新
Java更新索引public class EsUpdate{ public void updateIndex(TransportClient client){ Date time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss") .parse("2016-7-21 00:原创 2017-09-05 08:33:19 · 8453 阅读 · 0 评论 -
Elasticsearch Java API 的使用(23)—实现集群管理
集群管理 使用ClusterHealthResponce实现集群信息监测和管理public class EsCommonTerms throws UnknownHostException{ public void queryString(TransportClient client){ ClusterHealthResponce healths = client.adm...原创 2018-09-06 20:22:03 · 896 阅读 · 0 评论