Lucene系列(8)——常用Query介绍

注:本文基于Lucene 8.2.0 版本。搜索是使用Lucene的根本目的,本文介绍Lucene提供的常用查询。下面的讲述中,会以之前《Lucene系列(2)——代码实践》文章中4首短诗的索引数据为例进行查询,你可以先阅读那篇文章构建索引。在Lucene中,Term是查询的基本单元(unit),所有查询类的父类是org.apache.lucene.search.Query,本文会介绍下图中...

Lucene系列(7)——索引存储文件介绍

注:本文基于Lucene 8.2.0 版本。本文讨论Lucene底层索引数据存储。对于绝大数多人来说了解Lucene的上层概念足矣,无需关注底层的存储格式。所以本文虽然是讨论底层数据存储的,但也不会深入到具体的数据结构、压缩算法等。如果你有兴趣,可以查看对应版本的Lucene Java doc(8.2.0版本的链接已经附在文末)。另外,如果你对index、document、term、segm...

ES中Term Aggregation的准确性问题讨论

本文讨论ElasticSearch Bucket Aggregations中的Term Aggregation结果准确性的问题,所有测试基于ES 7.1.0版本,DSL语句通过Kibana dev tool执行。问题演示我们先来看一个查询不准确的例子,该例子借鉴自官方文档(链接见文末),但为了操作方便,减小了数据规模。创建一个名为products,包含3个shard,0个副本的索引,及一个k...

详解ElasticSearch中的路由(_routing)机制

注:本文的所有测试基于ES 7.1.0版本。ES中的路由(routing)机制决定一个document存储到索引的哪个shard上面去,即文档到shard的路由。计算公式为:shard_num = hash(_routing) % num_primary_shards其中_routing是路由字段的值,默认使用文档的ID字段:_id。如果我们想自己控制数据的路由规则的话,那可以修改这个默认值...

使用Logstash将Kafka中的数据导入到ElasticSearch

本文介绍如何使用Logstash将Kafka中的数据写入到ElasticSearch。使用的各个组件版本如下:kafka_2.11-2.2.0elasticsearch 6.8.3logstash 6.8.3组件安装这里就不赘述了,主要说一下操作流程和需要注意的一些细节。Logstash工作的流程由三部分组成:input:输入(即source),必须要有,指明从那里读取数据。filter:过...

Lucene系列(6)——字段及其属性

注:本文基于Lucene 8.2.0 版本。回忆一下之前文章中创建字段(Field)的一些代码片段:// 片段1 Field pathField = new StringField("path", file.toString(),Field.Store.YES); // 片段2 FieldType fieldType = new FieldType(); fieldTy...

Lucene系列(5)——倒排索引、Token与词向量

注:本文基于Lucene 8.2.0 版本。上文我们对Analyzer的原理和代码进行了分析,主要偏重流程,这篇文章来分析Analyzer的输出细节——Token。对原始数据进行Analyze的终极目的是为了更好的搜索,所以还会讨论和搜索相关的倒排索引和词向量(Term Vector)。倒排索引(Inverted Index)和正向索引(Forward Index)我们用一个例子来看什么是倒...
News
歇业...
最近评论
纳兹很强,流程很清楚
勇往直前Yarn管理的资源,在Flink WebUI 上提交的Job好像只能使用Session Clu...
1感谢
王桑~自问自答:Job的提交过程:下载应用所需的依赖执行main()方法提取 job graph将依...
王桑~您好,请教个问题flink 1.11后,引入了application mode,这个模是在集群...
称呼你还会打羽毛球?
二里庄本狱友前来观摩了
王叔叔纠正博主一个错误一般生产环境比较推荐Session ClusterJob Cluster用的比...
王叔叔文字写的真棒,是近几个月看过的最好的技术博客。博主原来也在菊花厂待过,也算是狱友了,祝好~
lay为什么两次心率会差这么多呢