replace indexed but not stored data in lucene

Was trying to replace indexed but not stored data in lucene . found this thread has the same issue: > > >> I have a strange problem with Field.Store.NO and Field.Index.ANALYZED > > >> fields with Lucene 3.0.1. > > >> > > >> I’m testing my app with twenty test documents. Each has about ten…

lucene index, store, anaylzed, not_analyzed, Document ,Fields

Create the Index So, step one is to create the index for our set of Word documents. To do this, we need to write some code that takes the information from the Word documents and turns them into a searchable index. The only way to do this is by brute force. We’ll have to iterate…

copy FSdirectory to InfinispanDirectory

FSdirectory vs InfinispanDirectory vs RAMDirectory The RAMDirectory provided by Lucene is not really meant for high performance. The filesystem based implementations using NIO and memory map are likely more efficient, unless you’re dealing with indexes meant for proof of concepts and unit tests. The Infinispan Directory is – like the filesystem one – tuned for good performance;…

Apache Lucene – Index File Formats

Summary of File Extensions The following table summarizes the names and extensions of the files in Lucene: Name Extension Brief Description Segments File segments.gen, segments_N Stores information about segments Lock File write.lock The Write lock prevents multiple IndexWriters from writing to the same file. Compound File .cfs An optional “virtual” file consisting of all the…

Lucene3.6 入门指南

From HERE 一、 简介 Lucene是什么:Lucene是apache软件基金会jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。 Lucene是一个基于Java的全文搜索,不是一个完整的搜索应用,而是一个代码库和API,可以方便地为应用提供搜索功能。 实际上Lucene的功能就是将开发人员提供的若干个字符串建立索引,然后提供一个全文搜索服务,用户将搜索的关键词提供给搜索服务,搜索服务告诉用户关键词出现的各字符串。 二、 基本流程 可见,lucene包含两部分:建立索引和搜索服务。建立索引是将源(本质是字符串)写入索引或者将源从索引中删除;进行搜索是向用户提供全文搜索服务,用户可以通过关键词定位源。 1. 建立索引的流程 使用analyzer处理源字符串,包括:分词,即分成一个个单词;去除stopword(可选)。 将源中的有效信息以不同Field的形式加入Document中,并把Document加入索引,从而在索引中记录有效的Field。 将索引写入存储器(内存或磁盘)。 2. 检索的流程 用户提供搜索关键词,经过analyzer处理。 对处理后的关键词搜索索引找出对应的Document。 用户根据需要从找到的Document中提取需要的Field。 三、 基本概念 1. Analyzer Analyzer的作用是分词,并去除字符串中的无效词语。 分词的目的是把字符串按某种语义规则划分为若干个词。英文中比较容易实现分词,因为英文本身就是以单词为单位,已经用空格分开;而中文则必须以某种方法将连成一片的句子划分成一个个词。 无效词语,如英文中的“of”、“the”和中文中的“的”、“地”等,这些词语在文章中大量出现。但是本身不包含关键信息,去掉后有利于缩小索引文件、提高命中率和执行效率。 2. Document 用户提供的源可以是文本文件、字符串或者数据库表中的一条记录等。一个源字符串经过索引之后,以一个Document的形式存储在索引文件中。搜索服务的结果也是以Document列表的形式返回。  Index Document 1 Field A (name/value) Field B (name/value) Document 2 Field A (name/value) Field B (name/value) 3. Field 一个Document可以包含多个信息域,如一篇文章可以包含“标题”、“正文”、“最后修改时间”等信息域,这些信息域以Field的形式保存在Document中。 Field有两个属性:存储和索引。存储属性可以控制是否对这个Field进行存储;索引属性可以控制是否对该Field进行索引。这似乎多此一举,但事实上对这两个属性的正确组合很重要。 下面举例说明:一篇文章需要对标题和正文进行全文搜索,所以把这两个Field的索引属性设置为真;同时希望能直接从搜索结果中提取文章标题,所以把标题Field的存储属性设置为真。但是正文Field太大了,为了缩小索引文件,将正文Field的存储属性设置为假,需要访问时再直接读取文件正文;希望能从搜索结果中提取最后修改时间;但是不需要对它进行搜索,所以把最后修改时间Field的存储属性设置为真,索引属性设置为假。 Field的两个属性禁止全为假的情况因为这对建立索引没有意义。 4. segment…