当前位置:  开发笔记 > 编程语言 > 正文

Lucene索引:解释了存储和索引模式

如何解决《Lucene索引:解释了存储和索引模式》经验,为你挑选了1个好方法。

我想我仍然不理解lucene索引选项.

以下选项是

Store.Yes

Store.No

Index.Tokenized

Index.Un_Tokenized

Index.No

Index.No_Norms

我真的不明白商店的选择.你为什么不想存放你的田地?
令牌化是分割内容并删除干扰词/分隔符(如"和","或"等)
我不知道规范可能是什么.如何存储标记化值?
如果我在"fieldName"中存储值"my string"会发生什么?为什么不查询

fieldName:my string

什么回报?



1> dustyburwell..:

Store.Yes

表示该字段的值将存储在索引中

Store.No

表示该字段的值不会存储在索引中

Store.Yes/No不会影响索引或使用lucene进行搜索.它只是告诉lucene,如果你想让它充当字段中值的数据存储区.如果使用Store.Yes,则在搜索时,该字段的值将包含在搜索结果文档中.

如果您将数据存储在数据库中并且仅使用Lucene索引进行搜索,那么您可以在所有字段上使用Store.No.但是,如果您也将索引用作存储,那么您将需要Store.Yes.

Index.Tokenized

意味着该字段在被索引时将被标记化(您获得该字段).这对于包含多个单词的长字段非常有用.

Index.Un_Tokenized

表示不会分析该字段,并将其存储为单个值.这对于关键字/单字和一些短的多字字段很有用.

Index.No

究竟是什么意思.该字段不会被编入索引,因此无法搜索.但是,您可以使用Index.No和Store.Yes来存储您不想搜索的值.

Index.No_Norms

与Index.Un_Tokenized相同,除了通过不存储一些规范化数据将保存几个字节.该数据用于增强和场长标准化.

为了进一步阅读,lucene javadocs是无价的(当前的API版本4.4.0):

Field.Index

Field.Store

对于你的上一个问题,关于为什么你的查询没有返回任何东西,不知道你如何索引该字段,我会说这是因为你的fieldName限定符只附加到'my'字符串.要搜索您想要的短语"my string":

fieldName:"my string"

在fieldName字段中搜索单词"my"和"string":

fieldName :(我的字符串)

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有