2015-10-20 62 views
0

我开始学习Lucene,所以我正在阅读Lucene in Action。从这本书中关于场的摘录:Lucene - 关键字提交混淆

Keyword—Isn’t analyzed, but is indexed and stored in the index verbatim. 
This type is suitable for fields whose original value should be preserved in 
its entirety, such as URLs, file system paths, dates, personal names, Social 
Security numbers, telephone numbers, and so on 

我从这个理解是什么,如果一个文本与关键字字段它不分析索引(不分割成tokens),但被索引。但是,我不明白的是and stored in the index verbatim

我对存储在索引中感到困惑。我认为如果文本被编入索引,它将被存储在索引数据结构中。

任何人都可以用一个例子来解释我吗?

回答

2

我认为你必须阅读第一版的Lucene in Action。那本书是11岁,绝望已过时。我不会太担心理解Lucene 1.4的约定。

The Second Edition可用。它已经五年了,基于Lucene 3.0,所以它肯定有些过时,特别是在lucene 4.0版本发生了很大变化之后,但并不是绝望。读书肯定会更有用。


虽然存储和索引字段之间的区别仍然存在。在Lucene的说法:

  • 索引 - 该字段是索引,可以搜索。关键字字段(或最近的StringField)不会被分析,但它们会被编入索引,因此它们的完整内容可以在没有标记的情况下进行搜索。

  • 存储 - 该字段与索引表单分开存储,以供以后检索。当您从Lucene获得搜索结果(例如,从IndexSearcher.doc(int))时,您获得的文档将只存储其中的字段。

因此,你可以有,你可以搜索领域,但不会在结果中返回,或者是在返回结果,但不能被搜索的字段。