Lucene的索引问题?

Cobbage 发布于 2013/07/31 22:48
阅读 231
收藏 0

1.我想指导lucene的索引我可不可以理解为自己设计的数据表,但是为什么不用数据库那?

2.真实的应用中还是存储为文件吗?

------------------------------------------

我应该怎么有序、深入学习了解lucene那?

目前:

我看了一部分《lucene in action》(中文的)前面的基础知识,写了一点demo.

看了一点AttributeSource ->TokenStream->Tokenizer TokenFilter简单了解了下切词的原理。

然后想看他那个Index部分,感觉太复杂了,就找了个1.4.3的版本想看下。(参考资料 《Lucene 原理与代码分析完整版》 《Annotated+Lucene》中文版本的。

我该怎样组织去学习,以及检测哪?

加载中
0
狮子的魂
狮子的魂

其实可以不需要索引的。查找就等同于在一个数据集合中查找一个满足特定要求的数据集合。

当数据量很大的时候,响应速度就是一个大问题了,这个时候就产生了索引,在索引中查找,然后通过索引快速定位到数据。也就是索引不是必须的,只是一种加速查找的额外机制。

对于你的疑问:

1. 索引数据需要持久化存储,肯定需要存在磁盘文件中,可以适当的引入缓存来加速操作。

2. ”数据表“是表示数据记录的结构,和索引是两码事情。
    lucene索引和数据库索引都是使用B树或者其变种算法来实现的,使用数据库也可以模拟实现lucene的功能,但是性能肯定跟不上的。

可以从以下几个方面入手lucene:

1. 亲手写几个lucene的使用例子。

2. 去了解下“倒排文档”数据结构和中文分词。

3. 再了解“B树”吧。

索引过程:文档内容->中文分词->索引组建(倒排文档)

检索过程:检索内容->中分分词->索引查询->组合并相关度排序->检索结果.

返回顶部
顶部