自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Lucene/Solr解密

探索Lucene/Solr高性能的秘密

原创 Lucene Search流程之二

介绍Lucene的Search流程,从查询发起到文档的收集的所有步骤全在文中。从索引应用的角度进一步巩固Lucene索引构建流程,做到知其然也知其所以然。流程之外,还介绍了Lucene如果实现布尔检索模型,以及应用。

2019-02-28 20:28:06 399 0

原创 Lucene DocValues索引文件详解

解密DocValues索引的存储结构,为何正向索引能给搜索结果再处理带来更多可能性和不一样的体验。由哪里结构完成存储需求,相对FieldCache又有哪些优点?

2018-11-29 14:37:55 1766 2

原创 Lucene倒排索引简述 之倒排表

文章目录前言Postings编码VIntBlockPackedBlockPostings文件结构说明Frequencies And Skip Data(.doc文件)TermFreqs -- FrequenciesMulti-level SkipList -- SkipDataPostitions...

2018-10-09 20:31:55 4686 0

原创 Lucene倒排索引简述 之索引表

Lucene倒排索引的核心内容,索引表,你对这部分真的熟悉了吗?那你知道FST用什么地方吗?FST又存储了什么内容呢?有什么功能呢?关于Burst-Trie,你知道Lucene是如何采用它的思想来加速Lucene搜索性能的吗?

2018-09-27 09:57:42 2074 3

原创 Lucene DocValues详解

DocValues,人称正向索引,也是大家所认识的面向列存储。即通过文档编号与字段值在索引建立直接映射的关系,并存储。对DocValues我想你并不陌生,但我相信你对它并不算熟悉。接下来,我们将具体来看看它的存储结构、字段类型、以及使用场景等。

2017-03-07 00:10:39 7458 0

原创 Lucene TFIDFSimilarity评分公式详解

TFIDFSimilarity曾经是Lucene/Solr默认评分公式,想知道Lucene的评分过程就得先了解Lucene的评分公式,接下来将深刻剖析公式每个部分推导过程以及它的含义。

2017-02-26 17:34:41 2905 0

原创 Lucene Search流程之一

你知道搜索过程如何读取TermsDict,如何实现近似查询的吗?TermQuery与SpanQuery查询有什么不一样吗? 先回顾倒排索引两大结构,讲述Lucene搜索流程中如何通过TermsDict获取到Postings所在的位置信息,以及每种方式是如何工作的且服务哪些查询类型。此外简述了读取不...

2019-01-16 18:50:55 613 0

原创 Lucene8.0新特征 DocValues改进

Lucene8.0新特征预告,继续优化DocValues,提升DocValues随机访问的性能。进一步讨论IndexedDISI的实现细节,以及如何服务DocValues。

2018-12-25 13:28:33 2037 4

原创 Lucene倒排索引简述 细说倒排索引构建

设计合适的数据结构对影响提升至关,在特定的场景使用的合适的结构是成功的基石,Lucene采用哪些数据结构解决构建索引的性能呢?本文将带你领略Lucene数据结构之美。

2018-11-13 23:39:42 8462 5

原创 Lucene倒排索引简述 番外篇

Lucene构建索引是一个非常复杂的过程,需要经过多道工序才能完成。那你知道Lucene在索引构建过程有哪些工序吗?又是整体流程是怎么样的呢?

2018-10-30 19:18:27 852 2

原创 Solr/SolrCloud Faceting细节三则

FacetComponent提供了Faceting功能,你了解Faceting吗?你知道facet.overrequest.count和facet.overrequest.ratio这两个参数吗?你知道Faceting总是带自QueryComponent的结果集吗

2018-10-30 16:28:53 771 1

原创 Lucene's MergePolicy

Lucene’s MergePolicy Lucene很多特征,在我看来跟LSM-Tree的数据库非常相似,甚至很多问题的解决方式都如出一辙。这里我想跟大家来聊聊Lucene的Segment合并问题,这个问题同样发生LSM-Tree数据库(HBase)。 我们知道我们每次冲刷索引时,Lucen...

2018-03-23 16:58:33 717 3

原创 Hive本地调试

一准备 二事情远没这么简单呢 1 winutilsexe找不到 2 系统找不到指定的文件 3 系统找不到指定的路径 三这样就可以了吗 1 UnsatisfiedLinkError 2 如果还不行 四结尾 虽然已经很习惯看静态代码了,但是这种方式始终很不方便,需要来来回回...

2018-02-11 20:24:38 1037 0

原创 Solr 迟到的Payloads

是什么让索引时Boost汗颜退场,又是什么是让Payloads在Solr6.6开始名声大噪,走进Solr6.6 新特性之一,Payloads Query了解她的前世今生,她的沉沉浮浮。PayloadsQuery为我们带来哪些不一样查询和文档组织方式呢,也许你看完了之后就不需要频频groupby了;...

2017-10-23 22:28:09 1392 0

原创 Solr Date类型的哪些你不得不了解的细节

我们先来看看Solr日期类型的一些内幕,然后讨论一下Solr日期类型存在的一些问题,最后我们看看怎么解决现存的问题。 概述 DateField 在Solr4.x之前,我们只有DateField,这类型现在用的应该比较少了,它对应Java中的java.util.Date类型。实现上,如你...

2017-07-09 14:29:58 6606 9

原创 Solr搜索统计 JSON Faceting API

如果你一直用在Solr,并打算使用Solr来做一些统计分析的话,接下来的内容你会非常感兴趣。 solr 5.3的时候完全重写了Solr查询语法,其中最为重要的就是重写Solr Facet查询语法。她就是我们今天的主角,JSON Facet API是一种全新的搜索查询语法,针对Facet+Stats...

2017-06-26 03:40:46 1911 3

原创 Solr查询语言 JSON Request API

JSON Request API是一套优雅高效查询语法,尤其在搜索统计方面带全新的体验,既简洁又漂亮。绝对是一次非常美好的体验。

2017-06-13 14:51:32 1965 0

原创 大明想跟你聊聊Solr6.x

来来来,坐下来,我们一起来聊聊Solr6.6。其实我关注Solr也有很长时间了,已经有小几年了吧。接下来, 我们来具体的聊一聊Solr几个变化或者变化趋势。

2017-06-08 23:50:00 2058 0

原创 JUC之JDK自带锁StampedLock

StampedLock是JDK 1.8的一把新锁,同样出自Doug Lee之手。这货高级了,出身显赫、自带光环,有着光辉的使命。她是一把不一样的锁,前面我们所整理过的两把锁(ReentantLock&ReentrantReadWriteLock)都是基于AQS框架实现,同时又都具有可重入性...

2017-02-22 02:18:29 629 0

原创 JUC之JDK自带锁ReentrantReadWriteLock

Java纪年1.5年,ReentrantReadWriteLock诞生于J·U·C。此后,国人一般称它为读写锁。人如其名,人如其名,她就是一个可重入锁,同时她还是一个读、写锁。跟ReentrantLock并没有亲属关系因为ReentrantReadWriteLock在命名上跟ReetrantLoc...

2017-02-14 23:10:25 319 0

原创 JUC之JDK自带锁ReentrantLock

ReentrantLock出身自Java 1.5,中文名可重入锁 是Java JDK自带独占锁的唯一实现,也是最常用的锁,是synchronized的升级版。我们中间有个synchronized我们已经认识过synchronized了,知道她能帮我们实现线程同步提供原子性语义,同时又有可重入性。...

2017-02-12 10:19:50 577 0

原创 JUC之AQS框架

AQS是一个框架,一个提供锁或同步器依赖于`FIFO等待队列`所必要的“基础设施”的框架。**Dong Lea**之所以写个抽象类的目的是为了简化我们实现同步器的工作。 提供一个基于FIFO等待队列,可以用于构建锁或者其他同步装置的基础框架。意在能够成为实现大部分同步需求的基础。 AQS默认提供...

2017-02-08 00:38:21 2846 0

原创 JUC之volatile

volatile提供了一个高效的同步机制,她在某些情况下可以代替synchronized实现更轻量和高效的同步机制,同时也更为脆弱,更难于掌控。被volatile修饰的变量具有内存可见性,但不具有原子性。至于什么是可见性,前面已经做过简单介绍,接下来我们进一步来看什么是可见性。

2017-02-06 03:12:38 426 0

原创 JUC之synchronized

synchronized是Java语言的一个关键字,用来修饰一个方法或者代码块,使得目标达到线程同步的目的。当我们希望某个方法或者代码块,同一时间只能有一个线程能够执行,即是同一时间只有一个线程能够进入该方法或者代码块,其它线程将会被阻塞直接原线程执行结束,此时我们使用该关键字。

2017-02-04 15:22:58 327 0

原创 同步锁前传 相关术语索引

本文主要梳理了并发编程中常用的相关术语定义以及简要解释。

2017-02-04 04:03:18 292 0

原创 Solr/SolrCloud SolrConfigHandler详解

SolrConfigHandler用来更新solrconfig.xml配置的Handler,她用来获取配置信息,和编辑配置信息。

2016-07-09 22:02:51 1100 2

原创 Solr/Lucene MMapDirectory的小细节

由于MMapDirectory引发的血案,在比较实时的SoftCommitTracker下,IO居高不下。本文可以让更加了解commitTracker以及DirectoryFactory。

2016-07-08 12:05:42 1576 0

原创 Solr/SolrCloud 莫名出现了CompoundFile

你是不是也发现了在 useCompoundFile = false 情况下,还不要脸的出现了 .cfs、.cfe 呢?然后,你觉得十分莫名,为什么出现这种情况。进而思考如何让Solr听你的话,不再出现 .cfs、.cfe 是吗?如果有一个是,那请一定要看看本博文,看之后你一定会有结论的。

2016-06-17 22:08:09 794 0

原创 Solr/SolrCloud SearchHandler详解

详细解读Solr中SearchHandler的处理逻辑。单机各Cloud模式下SearchHandler的设计和流程变化,对如何写扩展SearchHandler以及SearchComponent都会一定的帮助。

2016-06-12 13:57:20 1618 0

原创 Solr/SolrCloud 简述搜索请求过程

简述Solr/SolrCloud的搜索请求过程,剖析请求到Solr之后的处理逻辑。Solr/SolrCloud原来还是一个优秀的MVC框架。

2016-06-11 23:02:49 1527 0

提示
确定要删除当前文章?
取消 删除