Lucene索引的建立..docVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Lucene索引的建立.

Lucene索引的建立 一、预备知识 1、Document- Field的结构,与关系型数据库相似。表—索引;记录—Document;字段—Field。 2、索引文件:一个典型的segment通常包含以下几种后缀的文件,这几种文件共同构成了lucene索引的一个segment: .f:评分信息。 .frq:每个词条的频率信息。 .prx:每个词条的位置信息。 .fnm:包含了Document中的所有field。 .fdt:用于存储具有Store.YES属性的Field数据。和.fdx是综合使用的两个文件。 .fdx:是一个索引,用于存储Document在.fdt中的位置。 .tis:用于存储分词后的词条(Term)。 .tii:就是它的索引文件,它标明了每个.tis文件中的词条的位置。 .cfx:这个属性的含义为是否使用复合格式来保存索引。 segments: lucene对索引管理的最大单位就是segment。每个segment内的所有索引文件都具有相同的前缀。一个索引中可能有多个segment。在一个索引中,只有一个“segments”文件,这个文件没有后缀,它记录着当前的索引内有多少个segment。每个segment中,有多少个Document这样的信息。 deletable:lucene索引中,所有的文档被删除后,并不是立刻从索引中去除,而是留待下一次合并索引或是对索引进行优化时才真正删除。类似于Windows的回收站原理。这种功能是通过deletable文件实现的。所有的文档在被删除后,会首先在deletable文件中留一个记录,真正删除的时候才将索引删除。 3、索引的合并与索引的优化 public IndexWriter(Directory d, Analyzer a, boolean create) Lucene索引的存储路径有两种类型,FSDirectory和RAMDirectory。前者与文件系统的目录有关,写索引的时候直接写到磁盘上,后者与内存相关,添加过程与前者一样,但需将它写到磁盘中,否则当虚拟机推出后,里面的内容也会随之消失。需将RAMDirectory中的索引写到FSDirectory中。 使用IndexWriter来合并索引: (1)RAMDirectory中的索引写到FSDirectory中; (2)遇到大量的索引文件需要进行整理,但他们存在于不同的目录中,甚至是不同的物理空间中(将一个大型网络中的每一台主机上的索引文件合并,统一存储于一个具体的目录下)。 二、代码部分 1、Field的两个静态的内部类。通过Store和Index类的组合使用,可以表示Field的所有状态。 public static final class Store extends Parameter implements Serializable { private Store(String name) {super(name);} public static final Store COMPRESS=new Store(COMPRESS);//压缩存储 public static final Store YES=new Store(YES);//被存储 public static final Store NO=new Store(NO);//不被存储 } public static final class Index extends Parameter implements Serializable { private Index(String name) {super(name);} public static final Index NO=new Index(NO);//不索引 public static final Index TOKENIZED=new Index(TOKENIZED);//分词后索引 public static final Index UN_TOKENIZED=new Index(UN_TOKENIZED);//不分词索引 public static final Index NO_NORMS=new Index(NO_NORMS); //对field进行索引,但不使用Analyzer,同时禁止它参加评分 } 2、演示了如何为每册图书创建Document和选择合适的Field,这样就构成了索引的前提。 Document bookdoc=new Document(); Field bookNo= new Field(bookNumber,FB309663004,Field.Store.YES,Field.Index.UN_TOKZNIZED); Field

文档评论(0)

xznh + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档