文档章节

Lucene是如何理解文档的 & 文档类型(Types)是如何被实现的

翟志军
 翟志军
发布于 2015/09/21 10:43
字数 402
阅读 157
收藏 2

Lucene是如何理解文档的

在Lucene中,一份文档(Document)由一系列简单的字段-值(field-value)对组成。一个字段必须有值,同时允许包含多值。同样的,一个单一的字符串在分析处理过程中可能被转换成多个值。Lucene不关心值到底是字符串、数字还是日期——所有的值都以不可理解的比特值(opaque)对待。

当我们在Lucene中索引一份文档时,值和字段在反向索引(inverted index)中被关联起来。可选项的是,是否将原始值存储起来以便今后使用,存储后的值是不可更改的。

文档类型(Types)是如何被实现的

Elasticsearch的类型实现在简单的基础设施之上。一个索引可能存在多种类型,每种类型都有自己的mapping(类型数据库的schema)。同时同一类型下的每份文档都被存储在相同的索引里。

由于Lucene没有文档类型的概念,文档的类型名被存储在文档的一个被称为_type的元数据中。当我们在搜索某种类型的文档,Elasticsearch只是简单地使用该类型的值在_type字段上进行过滤。

Lucene也没有mapping的概念。Mapping是Elasticsearch的一个层,将复杂的JSON文档映射到Lucene能处理的简单的扁平的文档。


© 著作权归作者所有

共有 人打赏支持
翟志军

翟志军

粉丝 347
博文 76
码字总数 79851
作品 2
深圳
程序员
私信 提问
[Elasticsearch] 索引管理 (二)

自定义解析器(Custom Analyzers) 虽然ES本身已经提供了一些解析器,但是通过组合字符过滤器(Character Filter),分词器(Tokenizer)以及词条过滤器(Token Filter)来创建你自己的解析器才会显示...

键走偏锋
2017/08/02
0
0
《深入理解Elasticsearch(原书第2版)》一第2章 查询DSL进阶

第2章 查询DSL进阶 在上一章,我们了解了什么是Apache Lucene,它的整体架构,以及文本分析过程是如何完成的。之后,我们还介绍了Lucene的查询语言及其用法。除此之外,我们也讨论了Elastic...

键走偏锋
2017/11/01
0
0
Lucene DocValues详解

今天斗胆来试试DocValues,对于DocValues我想大家都不会觉得陌生,同时又不是非常熟悉,就是那种熟悉而又陌生的感觉。 一、docValues是什么鬼呢? DocValues在LUCENE-3518才引入新特征,初生...

大明搜索
2017/03/07
0
0
Lucene In Action 读书笔记(一)

简介 Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和...

林俊龙
2013/09/04
0
1
浅谈Lucene中的DocValues

前言:在Lucene4.x之后,出现一个重大的特性,就是索引支持DocValues,这对于广大的solr和elasticsearch用户,无疑来说是一个福音,这玩意的出现通过牺牲一定的磁盘空间带来的好处主要有两个...

九劫散仙
2016/05/10
150
0

没有更多内容

加载失败,请刷新页面

加载更多

TiDB EcoSystem Tools 原理解读(一):TiDB-Binlog 架构演进与实现原理

简介 TiDB-Binlog 组件用于收集 TiDB 的 binlog,并提供实时备份和同步功能。该组件在功能上类似于 MySQL 的主从复制,MySQL 的主从复制依赖于记录的 binlog 文件,TiDB-Binlog 组件也是如此...

TiDB
18分钟前
0
0
Confluence 6 文档主题合并问答

在 Confluence 官方 前期发布的消息 中,文档主题在 Confluence 6.0 及其后续版本中已经不可用。我们知道你可能对这个有很多好好奇的问题,因此我们在这里设置了一个问答用于帮助你将这个主题...

honeymose
21分钟前
0
0
sparkCore-RDD详解

1.1 什么是RDD 1.1.1 产生背景 当初设计RDD主要是为了解决三个问题: Fast: Spark之前的Hadoop用的是MapReduce的编程模型,没有很好的利用分布式内存系统,中间结果都需要保存到external di...

freeli
22分钟前
0
0
walle的试用和结合vagrant

walle Vagrant 入门指南

miaojiangmin
24分钟前
0
0
python popen.stdout.read阻塞 解决办法

需求:利用python的subprocess模块结合logging模块实现监控子程序运行情况 代码如下(程序阻塞在stdout.readz这里,日志里找不到hang on...................): import osimport sysimpor...

fang_faye
24分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部