0
点赞
收藏
分享

微信扫一扫

3、学习Lucene3.5之索引创建--域选项

/**
* Field(String name, String value, Field.Store store, Field.Index index)方法解析:
* 参数一:key
* 参数二:value
* 参数三:是否存储到硬盘(存储域选项)
* 1.Field.Store.YES:表示把这个域中的内容完全存储到文件中,方便进行文本的还原
* 2.Field.Store.NO:表示把这个域中的内容不存储到文件中,但是可以被索引。此时内容无法进行完全
* 还原(无法通过document.get()获取)
* 一般来说,我们是对id进行索引,然后通过id进数据库中进行搜索,找到对应的url,来获取文章内容,
* 所以一般对id索引并存储,文章的内容进行索引,但不存储
* 参数四:索引类型(索引域选项)
* 1.Field.Index.ANALYZED:进行分词和索引,适用于标题、内容等
* 2.Field.Index.NOT_ANALYZED:进行索引,但不进行分词,如果身份证号、姓名、ID等,适用于精确搜索
* 3.Field.Index.ANALYZED_NOT_NORMS:进行分词但是不存储norms信息,这个norms中包括了创建索引的时间和权值等信息
* 4.Field.Index.NOT_ANALYZED_NOT_NORMS:既不进行分词也不存储norms信息
* 5.Field.Index.NO:不进行索引
*
* 存储域和索引域最佳实践:
* 索引域 存储域 案例
* NOT_ANALYZED_NOT_NORMS YES 标识符(主键、文件名),电话号码,身份证号,姓名,日期
* ANALYZED YES 文档标题和摘要
* ANALYZED NO 文档正文
* NO YES 文档类型,数据库主键(不进行分词)
* NOT_ANALYZED NO 隐藏关键字
*/
document.add(new Field("fileName", tempFile.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));//将文件名添加到索引域中


举报

相关推荐

0 条评论