`
kfcman
  • 浏览: 396927 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

lucene中Field.Index,Field.Store的一些设置

阅读更多

lucene在doc.add(new Field("content",curArt.getContent(),Field.Store.NO,Field.Index.TOKENIZED));

Field有两个属性可选:存储和索引。

通过存储属性你可以控制是否对这个Field进行存储;

通过索引属性你可以控制是否对该Field进行索引。

事实上对这两个属性的正确组合很重要。

Field.IndexField.Store说明
TOKENIZED(分词) YES 被分词索引且存储
TOKENIZED NO 被分词索引但不存储
NO YES 这是不能被搜索的,它只是被搜索内容的附属物。如URL等
UN_TOKENIZED YES/NO 不被分词,它作为一个整体被搜索,搜一部分是搜不出来的
NO NO 没有这种用法


个人设置这两个属性主要依据还是要看这个Field是否要被索引是否要被存储,Field内容大小,和个人对其索引的重要性还是占了很大的比重。

注:同一Document下可以针对小的Field建立索引,查询出内容过大且存储没有被索引的Field(按查询需求设置)。

总结如下:

1.如果要对某Field进行查找,那么一定要把Field.Index设置为TOKENIZED或UN_TOKENIZED。TOKENIZED会对Field的内容进行分词;而UN_TOKENIZED不会,只有全词匹配,该Field才会被选中。
2.如果Field.Store是No,那么就无法在搜索结果中从索引数据直接提取该域的值,会使null。

补充:

       Field.Store.YES:存储字段值(未分词前的字段值)
       Field.Store.NO:不存储,存储与索引没有关系
       Field.Store.COMPRESS:压缩存储,用于长文本或二进制,但性能受损

       Field.Index.ANALYZED:分词建索引
       Field.Index.ANALYZED_NO_NORMS:分词建索引,但是Field的值不像通常那样被保存,而是只取一个byte,这样节约存储空间
       Field.Index.NOT_ANALYZED:不分词且索引
       Field.Index.NOT_ANALYZED_NO_NORMS:不分词建索引,Field的值去一个byte保存

       TermVector表示文档的条目(由一个Document和Field定位)和它们在当前文档中所出现的次数
       Field.TermVector.YES:为每个文档(Document)存储该字段的TermVector
       Field.TermVector.NO:不存储TermVector
       Field.TermVector.WITH_POSITIONS:存储位置
       Field.TermVector.WITH_OFFSETS:存储偏移量
       Field.TermVector.WITH_POSITIONS_OFFSETS:存储位置和偏移量

分享到:
评论

相关推荐

    lucene对doc.xlsx操作包

    import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.Directory; //... 初始化Directory和IndexWriter try (InputStream is = new FileInputStream("path_to_your_file.docx")) { ...

    Apache Lucene全文检索和IKAnalyzer分词工具类

    Field FieldTitle = new Field("title", vo.getTitle(), Field.Store.YES,Field.Index.TOKENIZED,Field.TermVector.WITH_POSITIONS_OFFSETS); Field FieldRemark = new Field("remark", vo.getRemark(), Field....

    lucene基本使用,适合初学者

    doc2.add(new Field("title", "用于索引第2个标题", Field.Store.YES, Field.Index.ANALYZED)); doc2.add(new Field("content", "建立索引内容", Field.Store.YES, Field.Index.ANALYZED)); // 添加文档至索引 ...

    Lucene深入讲解.txt,带你开发搜索引擎

    document.add(new Field("content", textReader, Field.Store.YES, Field.Index.ANALYZED)); // 可以添加更多字段 indexWriter.addDocument(document); } } indexWriter.optimize(); indexWriter.close(); ...

    Lucene初级教程.pdf

    doc.add(new Field("title", "lucene introduction", Field.Store.YES, Field.Index.TOKENIZED)); doc.add(new Field("content", "lucene works well", Field.Store.YES, Field.Index.TOKENIZED)); writer....

    lucene for java 简单demo

    doc.add(new StringField("content", "这是一个简单的Lucene应用", Field.Store.YES)); indexWriter.addDocument(doc); indexWriter.close(); // 创建索引读取器 IndexReader reader = DirectoryReader.open...

    lucene简单代码列子

    doc.add(new Field("content", "这是一个关于Lucene的简单代码实例", Field.Store.YES, Field.Type.TEXT)); indexWriter.addDocument(doc); indexWriter.close(); } } ``` 这段代码创建了一个索引,包含一个...

    Lucene 基础指南.doc

    - Field.Index:定义了字段是否被索引以及如何索引。TOKENIZED表示分词索引,UN_TOKENIZED用于不分词的字段(如作者名或日期),NO表示字段不被索引,NO_NORMS则表示不计算词频和长度因子。 - Field.Store:决定...

    lucene,lucene教程,lucene讲解

    org.apache.lucene.index.IndexWriter public abstract class Directory org.apache.lucene.store.Directory public abstract class Analyzer org.apache.lucene.analysis.Analyzer public final class ...

    Lucene中文分词组件 JE-Analysis 1.4.0

    doc.add(new Field(fieldName, text, Field.Store.YES, Field.Index.TOKENIZED)); iwriter.addDocument(doc); iwriter.close(); IndexSearcher isearcher = new IndexSearcher(directory); QueryParser ...

    Lucene建立索引及查询包含“java”关键字 示例代码

    doc.add(new TextField("content", "Java is a popular programming language", Field.Store.YES)); indexWriter.addDocument(doc); indexWriter.close(); directory.close(); } } ``` 创建索引后,我们可以...

    Lucene索引器实例

    doc.add(new Field("title", "Lucene索引器实例", Field.Store.YES, Field.Index.ANALYZED)); doc.add(new Field("content", "这是关于Lucene索引器的一个实例教程。", Field.Store.YES, Field.Index.ANALYZED)); ...

    Lucene之Helloworld

    doc.add(new Field("content", "这是一个Lucene的HelloWorld示例", Field.Store.YES, Field.Index.ANALYZED)); // 添加文档到索引 indexWriter.addDocument(doc); // 关闭写入器 indexWriter.close(); } }...

    lucene练习代码

    doc.add(new TextField("content", "这里是你的文本内容", Field.Store.YES)); // 添加字段 indexWriter.addDocument(doc); indexWriter.close(); } } ``` **搜索索引** 索引创建后,可以使用以下代码进行...

    lucene示例代码

    doc.add(new TextField("content", "这是一个测试文档", Field.Store.YES)); // 将文档添加到索引 indexWriter.addDocument(doc); // 关闭 IndexWriter,保存索引 indexWriter.close(); } } ``` 这段代码...

    lucene-6.5.1

    ", Field.Store.YES)); writer.addDocument(doc); writer.commit(); writer.close(); // 搜索文档 DirectoryReader reader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher...

Global site tag (gtag.js) - Google Analytics