docvalues和Fieldcache
Fieldcache:
docID->document->fieldvalue
无论是聚类排序关联等,首先都需要获得文档中某个字段的值,通过docID去获得整个document,然后再去获得字段值,term转换得到最终值,FieldCache一开始就缓存了所有文档的某个特定域(所有数值类型以及不分词的stringField)的值到内存,便于随机存取该域值!
Fieldcache实现过程:
http://moshalanye.iteye.com/blog/281379
缺点:
1. 常驻内存,大小是所有文档个数特定域类型大小
2. 初始加载过程耗时,需要遍历倒排索引及类型转换
Docvalues:
docID->fieldvalue
建索引时,建立了document到field value的面向列的正排索引数据结构,直接通过已知的docID定位到字段值,从而无需加载document,亦不需要term转换,遍历term找寻doc等的过程
优点:大约节省三分之一的内存!
缺点:由于是硬盘读取,而非内存模式,对于大批量的使用下,优势明显,速度更优;小量情况下没有内存快!总体会慢15-20%
20 February 2015 - Apache Lucene 5.0.0 and Apache Solr 5.0.0 Available
FieldCache is gone (moved to a dedicated UninvertingReader in the misc module). This means when you intend to sort on a field, you should index that field using doc values, which is much faster and less heap consuming than FieldCache.
LUCENE-5666:Change uninverted access (sorting, faceting, grouping, etc) to use the DocValues API instead of FieldCache
Es中
https://www.elastic.co/guide/en/elasticsearch/guide/current/doc-values.html
Sorl中
https://cwiki.apache.org/confluence/display/solr/DocValues
docvalues和Fieldcache的更多相关文章
- Lucene系列-FieldCache
域缓存,加载所有文档中某个特定域的值到内存,便于随机存取该域值. 用途及使用场景 当用户需要访问各文档中某个域的值时,IndexSearcher.doc(docId)获得Document的所有域值,但 ...
- 1.4.9 DocValues
DocValues 在solr4.2以后,引入了一个令人兴奋的功能,这个功能在lucene存在已经一段时间了,但是还没有在solr中使用. 在某些方面,DocValue 是一种非常有效的索引方式. 为 ...
- Solr4.2 新特性 DocValues [转]
原文地址http://wiki.apache.org/solr/DocValues DocValues从Lucene4.2和Solr4.2开始加入,通过建立字段的正排索引,提升sorting, fac ...
- lucene DocValues——本质是为通过docID查找某field的值 看图
Why DocValues? The standard way that Solr builds the index is with an inverted index. This style bui ...
- lucene DocValues——本质是为通过docID查找某field的值
什么是docValues? docValues是一种记录doc字段值的一种形式,在例如在结果排序和统计Facet查询时,需要通过docid取字段值的场景下是非常高效的. 为什么要使用docValues ...
- Lucene中string docvalues使用utf-16的优化
原来的string docvalues使用utf-8编码,载入时转码花费大量时间,我们把转码实现从new String(bytes, "UTF-8")改用lucene的bytesR ...
- Solr DocValues详解
前言: 在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的 ...
- 用Lucene实现分组,facet功能,FieldCache
假如你像用lucene来作分组,比如按类别分组,这种功能,好了你压力大了,lucene本身是不支持分组的. 当你想要这个功能的时候,就可能会用到基于lucene的搜索引擎solr. 不过也可以通过编码 ...
- Elasticsearch中的DocValues
Elasticsearch最近一段时间非常火,以致于背后的公司都改名为Elastic了,因为Elasticsearch已经不仅限于搜索,反而更多的用在大数据分析场景,所以在公司品牌上开始“去Searc ...
随机推荐
- 【转】 void与void*详解
void关键字的使用规则: 1. 如果函数没有返回值,那么应声明为void类型: 2. 如果函数无参数,那么应声明其参数为void: 3. 如果函数的参数可以是任意类型指针,那么应声明其参数为void ...
- Sprint2-3.0
后续安排 第16周 周二晚7点之前将本代码上传到GITHUB. GITHUB地址:https://github.com/QueenIcey/teamwork/tree/master/eslife1 周 ...
- WPF:换肤
看了一篇博客,觉得样式很好看,就自己动手做了一下,做个总结. 效果: 选择不同的图片背景就会改变: 直接上代码: 每个Theme对应一张图,除了图的名称不同之外,Theme?.xaml中的内容相 ...
- rabbitMQ Connection timed out
在VM中部署了一个rabbitMQ server ,在物理机上按照rabbitMQ官网上的 java的教程访问VM中的rabbitMQ报如下错误: Exception in thread " ...
- poj1192 最优连通子集(树形dp)
题目链接:poj1192 最优连通子集 求一棵无向树的最大子树和..类似于求最大子段和的办法,树形dp. dp[i][0]:以i为根,不包括 i 结点的子树最大权 dp[i][1]:以i为根,包括 i ...
- ios打包
ios7.1及以上 itms-services://?spm=0.0.0.0.WIsvD2&action=download-manifest&url=https://mtl.aliba ...
- Networkcommd V3 新功能之一 拒绝服务攻击防护 ( DOSProtection)
NetworkComms网络通信框架序言 DOSProtection类能够防御拒绝服务攻击 启用方法: NetworkComms.DOSProtection.Enabled = true; 相关资料:
- OC语言@property @synthesize和id
OC语言@property @synthesize和id 一.@property @synthesize关键字 注意:这两个关键字是编译器特性,让xcode可以自动生成getter和setter的声明 ...
- centos 非可视化查看已安装的redis
1. 2.
- WP8.1 Study17:网络之后台下载/上传及HttpClient
一.后台下载/上传 1.简介 使用BackgroundTransferGroup可以十分方便操作上传及下载文件,BackgroundDownloader和BackgroundUploader类中的方法 ...