索引中文档的属性建立与不建立带来的影响总结   1.依据文档的某属性去查找索引的话,只会返回带有此属性(如果你对当前属性设定了条件,那么需要满足当前条件)的所有文档,没有建立此属性的文档是不会在返回结果文档中的,不管你的属性值类型是什么(string.date.long.int),结果都是一样的 2.查找条件满足,排序不会有任何影响(如果排序的属性文档没有,lucene会按文档建立的先后顺序返回且只会按照这个顺序),只需注意说的第一点 3.索引查找也不会有任何影响,只需注意说的第一点 4.数量查…
问题 现在给出很多份文档,现在对某个搜索词感兴趣,想找到相关的文档. 简单搜索 一种简单粗暴的做法是: 1.读取每个文档:2.找到其中含有搜索词的文档:3.对找到的文档中搜索词出现的次数统计:4.根据搜索词统计次数对文档按降序排序. 这称之为信息获取(Information Retrieval, IR),也叫简单搜索 普通IR方案存在的问题:    文档的体积增大或者数量增多,算法效率会下降    改进搜索的方案 Lucene项目对文档进行索引来快速搜索. 问题又来了:仅有索引仍不够,还有: 链…
删除索引(文档) 需求 某些图书不再出版销售了,我们需要从索引库中移除该图书. 1 @Test 2 public void deleteIndex() throws Exception { 3 // 1.指定索引库目录 4 Directory directory = FSDirectory.open(new File("F:\\lucene\\0719")); 5 // 2.创建IndexWriterConfig 6 IndexWriterConfig cfg = new IndexW…
前言:上一章中我们已经实现了索引器的创建,但是我们没有索引文档,本章将会讲解如何生成字段.创建索引文档,给字段加权以及保存文档到索引器目录 luncene5.5.3集合jar包下载地址:http://download.csdn.net/detail/eguid_1/9677589 一.创建索引文档 一个索引目录可以放多个索引文档,每个索引文档由多个索引字段组成,索引字段由要索引的字段名和字段内容以及权重值组成 1.构建索引字段并加权 /** * 创建索引字段 * @param boost * -…
索引建立时      1.对原有索引文件进行建立,是可以访问索引文件中的数据的      2.建立新索引文件,必须等建立完毕后,才可以访问,新建立的文件如果没有建立完是不可以被访问的     如果想建立200w的数据的索引又想立即查看的话,先建立1w,建好之后再去建立199w,这样做!       新索引文件建立时: [webuser@localhost index]$ ls -l dataIndex/main/ 总计 149612 -rw-r--r-- 1 webuser users 7944…
对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析. Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:<Annotated Lucene>,好像中文名称叫<Lucene源码剖析>是很不错的. 想要真正了解Lucene索引文件过程,最好的办法是跟进代码调试,对着文章看代码,这样不但能够最详细准确…
一.IndexWriter详解 问题1:索引创建过程完成什么事? 分词.存储到反向索引中 1. 回顾Lucene架构图: 介绍我们编写的应用程序要完成数据的收集,再将数据以document的形式用lucene的索引API创建索引.存储. 这里重点要强调应用代码负责做什么,lucene负责做什么. 2. Lucene索引创建API 图示 通过该图介绍lucene创建索引的核心API:Document.IndexWriter Lucene中要索引的文档.数据记录以document表示,应用程序通过I…
对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析. Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:<Annotated Lucene>,好像中文名称叫<Lucene源码剖析>是很不错的. 想要真正了解Lucene索引文件过程,最好的办法是跟进代码调试,对着文章看代码,这样不但能够最详细准确…
一.lucene索引 1.文档层次结构 索引(Index):一个索引放在一个文件夹中: 段(Segment):一个索引中可以有很多段,段与段之间是独立的,添加新的文档可能产生新段,不同的段可以合并成一个新段: 文档(Document):文档是创建索引的基本单位,不同的文档保存在不同的段中,一个段可以包含多个文档: 域(Field):一个文档包含不同类型的信息,可以拆分开索引: 词(Term):词是索引的最小单位,是经过词法分析和语言处理后的数据: 文档是Lucene索引和搜索的原子单位,文档为包…
对于Lucene的索引过程,除了将词(Term)写入倒排表并最终写入Lucene的索引文件外,还包括分词(Analyzer)和合并段(merge segments)的过程,本次不包括这两部分,将在以后的文章中进行分析. Lucene的索引过程,很多的博客,文章都有介绍,推荐大家上网搜一篇文章:<Annotated Lucene>,好像中文名称叫<Lucene源码剖析>是很不错的. 想要真正了解Lucene索引文件过程,最好的办法是跟进代码调试,对着文章看代码,这样不但能够最详细准确…