文档章节

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

翟志军
 翟志军
发布于 2015/09/21 10:43
字数 402
阅读 182
收藏 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能处理的简单的扁平的文档。


© 著作权归作者所有

翟志军

翟志军

粉丝 356
博文 76
码字总数 79871
作品 2
深圳
程序员
私信 提问
加载中

评论(0)

[Elasticsearch] 索引管理 (二)

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

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

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

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

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

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

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

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

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

九劫散仙
2016/05/10
437
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 现在看动弹的人都是什么状态

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《夏日、教室与望着窗外的我》- Candy_Wind 手机党少年们想听歌,请使劲儿戳(这里...

小小编辑
今天
75
1
wamp环境安装redis扩展

1.查看phpinfo信息根据配置信息下载对应的扩展 关键信息:VC14,TS,x86 2.下载php_redis和php_igbinary扩展 php_redis扩展下载地址: https://windows.php.net/downloads/pecl/snaps/redis...

点滴课程
今天
36
0
开源商城开发笔记1-创建MyBatis示例

一、修改pom.xml,引入MyBatis,JUnit,Log4j <dependencies><dependency><groupId>org.mybatis</groupId><artifactId>mybatis</artifactId><version>3.5.4</version>......

土龙
今天
56
0
The Best Way To Learn English in 2020 (In my humble opinion.)

✅Here is the plan: THINGS YOU WILL NEED: - 1 hour per day (30 minutes will work as well). - a notebook and a pen to write down new vocabulary each day. - an English song. - an ......

FalconChen
昨天
73
0
nodejs 使用 pako 压缩数据

github https://github.com/nodeca/pako 应用场景 大对象传输一般使用json, 在worker或local storage中还必须使用字符串, pako可以对字符串或者 Uint8Array 数据进行压缩和解压, 牺牲一部分读...

阿豪boy
昨天
79
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部