排序:
默认
按更新时间
按访问量

Lucene 4.X 倒排索引原理与实现: (3) Term Dictionary和Index文件 (FST详细解析)

我们来看最复杂的部分,就是Term Dictionary和Term Index文件,Term Dictionary文件的后缀名为tim,Term Index文件的后缀名是tip,格式如图所示。 Term Dictionary文件首先是一个Header,接下来是PostingsHeader,这两个的...

2018-06-30 17:37:23

阅读数:55

评论数:0

Lucene 4.X 倒排索引原理与实现: (2) 倒排表的格式设计

1. 定长编码最容易想到的方式就是常用的普通二进制编码,每个数值占用的长度相同,都占用最大的数值所占用的位数,如图所示。 这里有一个文档ID列表,254,507,756,1007,如果按照二进制定长编码,需要按照最大值1007所占用的位数10位进行编码,每个数字都占用10位。和词典的格式设计中顺序...

2018-06-30 17:36:23

阅读数:26

评论数:0

Lucene 4.X 倒排索引原理与实现: (1) 词典的设计

词典的格式设计词典中所保存的信息主要是三部分:Term字符串Term的统计信息,比如文档频率(Document Frequency)倒排表的位置信息其中Term字符串如何保存是一个很大的问题,根据上一章基本原理的表述中,我们知道,写入文件的Term是按照字典顺序排好序的,那么如何将这些排好序的Te...

2018-06-30 17:35:09

阅读数:33

评论数:0

SolrCloud中的文件与Collection管理

一.内嵌启动SolrCloud时端口默认分配 当 Solr 运行内嵌 zookeeper 服务时,默认使用 solr 端口+1000 作为客户端口,另外,solr 端口+1 作为 zookeeper 服务端口,solr 端口+2 作为主服务选举端口。所以第一个例子中,Solr 运行在 898...

2017-09-15 10:29:37

阅读数:59

评论数:0

SolrCloud 4.3.1+Tomcat 7安装配置实践

我们使用Solr Replication可以实现Solr服务器的可用性,即使某一个索引副本由于磁盘介质故障或者误操作删除等,其他的多个复制副本仍然可以提供服务。如果只是单纯的基于Solr Replication技术,只能对一个索引进行管理维护,当索引数据达到一定规模,搜索的性能成了瓶颈,除了重新规...

2017-09-15 09:57:31

阅读数:66

评论数:0

solrcloud分布式集群部署及索引操作实例

一、前期准备工作 相关工具: 1.虚拟机(VMware) 2.tomcat7 64位  下载地址:http://tomcat.apache.org/download-70.cgi 3.centos6.4  64位 4.linux下的64位jdk安装包,版本为6或以上 5. solr...

2017-09-15 09:36:20

阅读数:67

评论数:0

Solr 4.3.1稳定版 安装部署平台搭建

前言:             之前发表的SolrCloud写的太简洁(其实附件中的文档是很详细的)这里对于Solr我打算细致的好好写一篇。          这篇文章讲解了哪儿些功能的实现呢?          第一:能通过http://localhost:7080/sol...

2017-09-14 10:53:59

阅读数:174

评论数:0

solrCloud 索引更新逻辑学习笔记

ZkCoreNodeProps 封装了一个node的相关信息,包括base_url,core_name,state,node_name,core_url,isLeader SolrCmdDistributor solr分布式更新的一个重要实现工具类,因为它本身的只负责分布式的请...

2017-09-14 10:39:48

阅读数:266

评论数:0

分布式全文检索系统SolrCloud简介

前言 本文简单描述SolrCloud的特性,基本结构和入门,基于Solr4.5版本。 Lucene是一个Java语言编写的利用倒排原理实现的文本检索类库。Solr是以Lucene为基础实现的文本检索应用服务。 SolrCloud是Solr4.0版本开发出的具有开创意义的基于Solr和Zookeep...

2017-09-14 10:35:37

阅读数:77

评论数:0

有关Lucene的问题(8):用Lucene构建实时索引的文档更新问题

在有关Lucene的问题(7),讨论了使用Lucene内存索引和硬盘索引构建实时索引的问题。 然而有的读者提到,如果涉及到文档的删除及更新,那么如何构建实时的索引呢?本节来讨论这个问题。 1、Lucene删除文档的几种方式   IndexReader.deleteDocum...

2017-09-14 10:28:59

阅读数:204

评论数:0

有关Lucene的问题(7):用Lucene构建实时的索引

由于前一章所述的Lucene的事务性,使得Lucene可以增量的添加一个段,我们知道,倒排索引是有一定的格式的,而这个格式一旦写入是非常难以改变的,那么如何能够增量建索引呢?Lucene使用段这个概念解决了这个问题,对于每个已经生成的段,其倒排索引结构不会再改变,而增量添加的文档添加到新的段中,段...

2017-09-14 10:17:29

阅读数:162

评论数:0

有关Lucene的问题(6):Lucene的事务性

所谓事务性,本多指数据库的属性,包括ACID四个基本要素:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)。 我们这里主要讨论隔离性,Lucene的IndexReader和IndexWriter具有隔离性。 当...

2017-09-14 10:02:48

阅读数:165

评论数:0

有关Lucene的问题(5):Lucene中的TooManyClause异常

为什么会产生这个异常: 使用Lucene检索过程中如果用到RangeQuery,PrefixQuery,WildcardQuery,FuzzyQuery这四种Query,可能会产生TooManyClauses异常。为什么会产生这个异常呢?举例说明: 以RangeQuery为例,如果日期...

2017-09-14 09:54:09

阅读数:160

评论数:0

有关Lucene的问题(4):影响Lucene对文档打分的四种方式

在索引阶段设置Document Boost和Field Boost,存储在(.nrm)文件中。 如果希望某些文档和某些域比其他的域更重要,如果此文档和此域包含所要查询的词则应该得分较高,则可以在索引阶段设定文档的boost和域的boost值。 这些值是在索引阶段就写入索引文件的,存储在...

2017-09-14 09:47:42

阅读数:247

评论数:0

有关Lucene的问题(3): 向量空间模型与Lucene的打分机制

问题: 在你的文章中提到了: 于是我们把所有此文档中词(term)的权重(term weight) 看作一个向量。    Document = {term1, term2, …… ,term N}    Document Vector = {weight1, weight2...

2017-09-14 09:35:56

阅读数:153

评论数:0

有关Lucene的问题(2):stemming和lemmatization

问题: 我试验了一下文章中提到的 stemming 和 lemmatization 将单词缩减为词根形式,如“cars”到“car”等。这种操作称为:stemming。将单词转变为词根形式,如“drove”到“drive”等。这种操作称为:lemmatization。 试验没有成...

2017-09-14 09:24:25

阅读数:282

评论数:0

有关Lucene的问题(1):为什么能搜的到“中华 AND 共和国”却搜不到“中华共和国”?

问题: 使用中科院的中文分词对“中华人民共和国” 进行索引,它被分词为"中华", "人民", "共和国",用“人民共和国”进行搜索,可以搜到,而搜索"中华共和国"却搜索不到,用“中华 AND 共和国”却可以搜出来...

2017-09-13 11:20:59

阅读数:89

评论数:0

Lucene学习总结之九:Lucene的查询对象(3)

6、FilteredQuery FilteredQuery包含两个成员变量: Query query:查询对象Filter filter:其有一个函数DocIdSet getDocIdSet(IndexReader reader) 得到一个文档号集合,结果文档必须出自此文档集合,注此处...

2017-09-13 11:00:45

阅读数:199

评论数:0

Lucene学习总结之九:Lucene的查询对象(2)

5、SpanQuery 所谓SpanQuery也即在查询过程中需要考虑进Term的位置信息的查询对象。 SpanQuery中最基本的是SpanTermQuery,其只包含一个Term,与TermQuery所不同的是,其提供一个函数来得到位置信息: public S...

2017-09-13 10:50:09

阅读数:168

评论数:0

Lucene学习总结之九:Lucene的查询对象(1)

Lucene除了支持查询语法以外,还可以自己构造查询对象进行搜索。 从上一节的Lucene的语法一章可以知道,能与查询语句对应的查询对象有:BooleanQuery,FuzzyQuery,MatchAllDocsQuery,MultiTermQuery,MultiPhraseQuery,Ph...

2017-09-13 10:38:04

阅读数:161

评论数:0

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