- 浏览: 2188442 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (682)
- 软件思想 (7)
- Lucene(修真篇) (17)
- Lucene(仙界篇) (20)
- Lucene(神界篇) (11)
- Solr (48)
- Hadoop (77)
- Spark (38)
- Hbase (26)
- Hive (19)
- Pig (25)
- ELK (64)
- Zookeeper (12)
- JAVA (119)
- Linux (59)
- 多线程 (8)
- Nutch (5)
- JAVA EE (21)
- Oracle (7)
- Python (32)
- Xml (5)
- Gson (1)
- Cygwin (1)
- JavaScript (4)
- MySQL (9)
- Lucene/Solr(转) (5)
- 缓存 (2)
- Github/Git (1)
- 开源爬虫 (1)
- Hadoop运维 (7)
- shell命令 (9)
- 生活感悟 (42)
- shell编程 (23)
- Scala (11)
- MongoDB (3)
- docker (2)
- Nodejs (3)
- Neo4j (5)
- storm (3)
- opencv (1)
最新评论
-
qindongliang1922:
粟谷_sugu 写道不太理解“分词字段存储docvalue是没 ...
浅谈Lucene中的DocValues -
粟谷_sugu:
不太理解“分词字段存储docvalue是没有意义的”,这句话, ...
浅谈Lucene中的DocValues -
yin_bp:
高性能elasticsearch ORM开发库使用文档http ...
为什么说Elasticsearch搜索是近实时的? -
hackWang:
请问博主,有用solr做电商的搜索项目?
Solr中Group和Facet的用法 -
章司nana:
遇到的问题同楼上 为什么会返回null
Lucene4.3开发之第八步之渡劫初期(八)
原创不易,转载请务必注明,原创地址,谢谢配合!
http://qindongliang1922.iteye.com/blog/2030639
散仙又有一段时间,没更新Lucene的文章了,Lucene版本的更新还是飞快的,现在已经到4.7的版本了,今天,散仙来给大家分享几个Lucene比较有用的小技术。Lucene作为一款优秀的全文检索工具包,自然附带了一些其他比较有用的功能,例如在文本挖掘领域,常常需要统计一些词或短语的TF信息,或者IDF的信息,用来加权某个词条,从而找出某篇新闻,或文献中比较重要的一些关键词或短语,或者我们想得到这些词库的位置信息等等。
下面进入正题,今天散仙就围绕如上所说的,来看下如何利用Lucene来获取TF,IDF,以及term词条的位置信息。
首先,第一个我们来看下如何获取分词后的短语的位置信息,这个功能,主要跟我们的分词器有关系,在分词过程中记录的位置信息,增量信息,载荷等等,我们重点来看下,如何获取位置信息,代码如下:
由上显示,我们可以获取所有短语的位置信息,这个功能在Lucene高亮的时候是非常有用的,如果数据位置发生错位,那么大部分原因都有可能跟这个地方有关系。
第二,我们来看下,如何使用Lucene来获取一片文章中所有短语的词频,这个首先我们的数据是需要索引起来的,并且要开启向量存储的功能,然后我们在去索引里面获取词频,然后,稍作加工,按词频降序输出,由此来直观显示,这篇文章可能重点体现的意思,在这之前,需要对一些常见的禁用词做下处理,以防影响数据结果。
数据和一里面的一样,代码如下:
输出结果如下:
最后,我们来看下,如何获取IDF,
核心代码如下:
输出结果如下:
转载请务必注明,原创地址,谢谢配合!
http://qindongliang1922.iteye.com/blog/2030639
你还想要啥
就一篇测试文章,当然是1了
http://qindongliang1922.iteye.com/blog/2030639
散仙又有一段时间,没更新Lucene的文章了,Lucene版本的更新还是飞快的,现在已经到4.7的版本了,今天,散仙来给大家分享几个Lucene比较有用的小技术。Lucene作为一款优秀的全文检索工具包,自然附带了一些其他比较有用的功能,例如在文本挖掘领域,常常需要统计一些词或短语的TF信息,或者IDF的信息,用来加权某个词条,从而找出某篇新闻,或文献中比较重要的一些关键词或短语,或者我们想得到这些词库的位置信息等等。
下面进入正题,今天散仙就围绕如上所说的,来看下如何利用Lucene来获取TF,IDF,以及term词条的位置信息。
首先,第一个我们来看下如何获取分词后的短语的位置信息,这个功能,主要跟我们的分词器有关系,在分词过程中记录的位置信息,增量信息,载荷等等,我们重点来看下,如何获取位置信息,代码如下:
测试数据 中新网3月12日电 据中国政府网消息,3月12日上午10时15分,李克强总理参加完政协闭幕会后来到国务院应急指挥中心,与前方中国搜救船长通话,了解马航MH370失联客机搜救最新进展情况。李克强要求各有关部门调集一切可能力量,加大搜救密度和力度,不放弃任何一线希望。
/** * 搜索技术交流群: 324714439 * * 获取分词后term的位置信息 * @param word 分词的文本 * */ public void postion(String word)throws Exception{ Analyzer analyzer=new IKAnalyzer();//IK分词 TokenStream token=analyzer.tokenStream("a", new StringReader(word)); token.reset(); CharTermAttribute term=token.addAttribute(CharTermAttribute.class);//term信息 OffsetAttribute offset=token.addAttribute(OffsetAttribute.class);//位置数据 while(token.incrementToken()){ System.out.println(term+" "+offset.startOffset()+" "+offset.endOffset()); } token.end(); token.close(); }
输出结果: 中新网 0 3 中新 0 2 新网 1 3 3 3 4 月 4 5 12 5 7 日 7 8 电 8 9 据 10 11 中国政府 11 15 中国 11 13 国政 12 14 政府网 13 16 政府 13 15 网 15 16 消息 16 18 3 19 20 月 20 21 12 21 23 日 23 24 上午 24 26 10 26 28 时 28 29 15 29 31 分 31 32 李克强 33 36 克强 34 36 总理 36 38 参加 38 40 加完 39 41 政协 41 43 闭幕会 43 46 闭幕 43 45 会后 45 47 后来 46 48 来到 47 49 国务院 49 52 国务 49 51 院 51 52 应急 52 54 指挥中心 54 58 指挥 54 56 中心 56 58 与 59 60 前方 60 62 方中 61 63 中国 62 64 搜救 64 66 船长 66 68 通话 68 70 了解 71 73 马 73 74 航 74 75 mh370 75 80 mh 75 77 370 77 80 失 80 81 联 81 82 客机 82 84 搜救 84 86 最新进展 86 90 最新 86 88 新进展 87 90 新进 87 89 进展 88 90 情况 90 92 李克强 93 96 克强 94 96 强要 95 97 要求 96 98 各有 98 100 有关部门 99 103 有关 99 101 有 99 100 关 100 101 部门 101 103 调集 103 105 一切 105 107 切 106 107 可能 107 109 能力 108 110 力量 109 111 加大 112 114 搜救 114 116 密度 116 118 力度 119 121 不放 122 124 放弃 123 125 任何 125 127 一线希望 127 131 一线 127 129 线 128 129 希望 129 131
由上显示,我们可以获取所有短语的位置信息,这个功能在Lucene高亮的时候是非常有用的,如果数据位置发生错位,那么大部分原因都有可能跟这个地方有关系。
第二,我们来看下,如何使用Lucene来获取一片文章中所有短语的词频,这个首先我们的数据是需要索引起来的,并且要开启向量存储的功能,然后我们在去索引里面获取词频,然后,稍作加工,按词频降序输出,由此来直观显示,这篇文章可能重点体现的意思,在这之前,需要对一些常见的禁用词做下处理,以防影响数据结果。
数据和一里面的一样,代码如下:
存储核心代码; FieldType ft=new FieldType(); ft.setIndexed(true);//存储 ft.setStored(true);//索引 ft.setStoreTermVectors(true); ft.setTokenized(true); ft.setStoreTermVectorPositions(true);//存储位置 ft.setStoreTermVectorOffsets(true);//存储偏移量 Document doc=new Document(); doc.add(new Field("name", word, ft)); writer.addDocument(doc);
获取TF的代码 /** * 读取索引,显示词频 * * **/ public void getTF(){ List<Word> list=new ArrayList<Word>(); try{ Directory directroy=FSDirectory.open(new File("D:\\lucene测试索引\\2014311测试")); IndexReader reader= DirectoryReader.open(directroy); for (int i = 0; i < reader.numDocs(); i++) { int docId = i; System.out.println("第"+(i+1)+"篇文档:"); Terms terms = reader.getTermVector(docId, "name"); if (terms == null) continue; TermsEnum termsEnum = terms.iterator(null); BytesRef thisTerm = null; while ((thisTerm = termsEnum.next()) != null) { String termText = thisTerm.utf8ToString(); DocsEnum docsEnum = termsEnum.docs(null, null); while ((docsEnum.nextDoc()) != DocIdSetIterator.NO_MORE_DOCS) { System.out.println("termText:"+termText+" TF: "+docsEnum.freq()); } } } reader.close(); directroy.close(); Collections.sort(list); for(Word w:list){ System.out.println(w); } }catch(Exception e){ e.printStackTrace(); } }
输出结果如下:
索引成功了.......... 第1篇文档: 关键词: 搜救 词频: 3 关键词: 12 词频: 2 关键词: 3 词频: 2 关键词: 中国 词频: 2 关键词: 克强 词频: 2 关键词: 日 词频: 2 关键词: 月 词频: 2 关键词: 李克强 词频: 2 关键词: 10 词频: 1 关键词: 15 词频: 1 关键词: 370 词频: 1 关键词: mh 词频: 1 关键词: mh370 词频: 1 关键词: 一切 词频: 1 关键词: 一线 词频: 1 关键词: 一线希望 词频: 1 关键词: 上午 词频: 1 关键词: 不放 词频: 1 关键词: 与 词频: 1 关键词: 中国政府 词频: 1 关键词: 中心 词频: 1 关键词: 中新 词频: 1 关键词: 中新网 词频: 1 关键词: 了解 词频: 1 关键词: 任何 词频: 1 关键词: 会后 词频: 1 关键词: 关 词频: 1 关键词: 分 词频: 1 关键词: 切 词频: 1 关键词: 前方 词频: 1 关键词: 力度 词频: 1 关键词: 力量 词频: 1 关键词: 加大 词频: 1 关键词: 加完 词频: 1 关键词: 参加 词频: 1 关键词: 可能 词频: 1 关键词: 各有 词频: 1 关键词: 后来 词频: 1 关键词: 国务 词频: 1 关键词: 国务院 词频: 1 关键词: 国政 词频: 1 关键词: 失 词频: 1 关键词: 客机 词频: 1 关键词: 密度 词频: 1 关键词: 希望 词频: 1 关键词: 应急 词频: 1 关键词: 强要 词频: 1 关键词: 总理 词频: 1 关键词: 情况 词频: 1 关键词: 指挥 词频: 1 关键词: 指挥中心 词频: 1 关键词: 据 词频: 1 关键词: 放弃 词频: 1 关键词: 政协 词频: 1 关键词: 政府 词频: 1 关键词: 政府网 词频: 1 关键词: 新网 词频: 1 关键词: 新进 词频: 1 关键词: 新进展 词频: 1 关键词: 方中 词频: 1 关键词: 时 词频: 1 关键词: 最新 词频: 1 关键词: 最新进展 词频: 1 关键词: 有 词频: 1 关键词: 有关 词频: 1 关键词: 有关部门 词频: 1 关键词: 来到 词频: 1 关键词: 消息 词频: 1 关键词: 电 词频: 1 关键词: 线 词频: 1 关键词: 网 词频: 1 关键词: 联 词频: 1 关键词: 能力 词频: 1 关键词: 航 词频: 1 关键词: 船长 词频: 1 关键词: 要求 词频: 1 关键词: 调集 词频: 1 关键词: 进展 词频: 1 关键词: 通话 词频: 1 关键词: 部门 词频: 1 关键词: 闭幕 词频: 1 关键词: 闭幕会 词频: 1 关键词: 院 词频: 1 关键词: 马 词频: 1
最后,我们来看下,如何获取IDF,
核心代码如下:
/** * 计算IDF * * **/ public void printIDF(){ try{ Directory directroy=FSDirectory.open(new File("D:\\lucene测试索引\\2014311测试")); IndexReader reader= DirectoryReader.open(directroy); List<AtomicReaderContext> list=reader.leaves(); for(AtomicReaderContext ar:list){ String field="name"; AtomicReader areader=ar.reader(); Terms term=areader.terms("name"); TermsEnum tn=term.iterator(null); BytesRef text; while((text = tn.next()) != null) { System.out.println("field=" + field + "; text=" + text.utf8ToString()+" IDF : "+tn.docFreq() // +" 全局词频 : "+tn.totalTermFreq() ); } } reader.close(); directroy.close(); }catch(Exception e){ e.printStackTrace(); } }
输出结果如下:
索引成功了.......... field=name; text=10 IDF : 1 field=name; text=12 IDF : 1 field=name; text=15 IDF : 1 field=name; text=3 IDF : 1 field=name; text=370 IDF : 1 field=name; text=mh IDF : 1 field=name; text=mh370 IDF : 1 field=name; text=一切 IDF : 1 field=name; text=一线 IDF : 1 field=name; text=一线希望 IDF : 1 field=name; text=上午 IDF : 1 field=name; text=不放 IDF : 1 field=name; text=与 IDF : 1 field=name; text=中国 IDF : 1 field=name; text=中国政府 IDF : 1 field=name; text=中心 IDF : 1 field=name; text=中新 IDF : 1 field=name; text=中新网 IDF : 1 field=name; text=了解 IDF : 1 field=name; text=任何 IDF : 1 field=name; text=会后 IDF : 1 field=name; text=克强 IDF : 1 field=name; text=关 IDF : 1 field=name; text=分 IDF : 1 field=name; text=切 IDF : 1 field=name; text=前方 IDF : 1 field=name; text=力度 IDF : 1 field=name; text=力量 IDF : 1 field=name; text=加大 IDF : 1 field=name; text=加完 IDF : 1 field=name; text=参加 IDF : 1 field=name; text=可能 IDF : 1 field=name; text=各有 IDF : 1 field=name; text=后来 IDF : 1 field=name; text=国务 IDF : 1 field=name; text=国务院 IDF : 1 field=name; text=国政 IDF : 1 field=name; text=失 IDF : 1 field=name; text=客机 IDF : 1 field=name; text=密度 IDF : 1 field=name; text=希望 IDF : 1 field=name; text=应急 IDF : 1 field=name; text=强要 IDF : 1 field=name; text=总理 IDF : 1 field=name; text=情况 IDF : 1 field=name; text=指挥 IDF : 1 field=name; text=指挥中心 IDF : 1 field=name; text=据 IDF : 1 field=name; text=搜救 IDF : 1 field=name; text=放弃 IDF : 1 field=name; text=政协 IDF : 1 field=name; text=政府 IDF : 1 field=name; text=政府网 IDF : 1 field=name; text=新网 IDF : 1 field=name; text=新进 IDF : 1 field=name; text=新进展 IDF : 1 field=name; text=方中 IDF : 1 field=name; text=日 IDF : 1 field=name; text=时 IDF : 1 field=name; text=最新 IDF : 1 field=name; text=最新进展 IDF : 1 field=name; text=月 IDF : 1 field=name; text=有 IDF : 1 field=name; text=有关 IDF : 1 field=name; text=有关部门 IDF : 1 field=name; text=李克强 IDF : 1 field=name; text=来到 IDF : 1 field=name; text=消息 IDF : 1 field=name; text=电 IDF : 1 field=name; text=线 IDF : 1 field=name; text=网 IDF : 1 field=name; text=联 IDF : 1 field=name; text=能力 IDF : 1 field=name; text=航 IDF : 1 field=name; text=船长 IDF : 1 field=name; text=要求 IDF : 1 field=name; text=调集 IDF : 1 field=name; text=进展 IDF : 1 field=name; text=通话 IDF : 1 field=name; text=部门 IDF : 1 field=name; text=闭幕 IDF : 1 field=name; text=闭幕会 IDF : 1 field=name; text=院 IDF : 1 field=name; text=马 IDF : 1
转载请务必注明,原创地址,谢谢配合!
http://qindongliang1922.iteye.com/blog/2030639
评论
5 楼
yuhe
2014-08-15
标题很蛋疼,没指明文章的主讲内容。
使用 Lucene来获取TF,IDF,以及term词条的位置信息 作为标题,是不是会更好?
使用 Lucene来获取TF,IDF,以及term词条的位置信息 作为标题,是不是会更好?
4 楼
qindongliang1922
2014-06-10
YANGSONGone 写道
就只有一片文档吧
你还想要啥
3 楼
YANGSONGone
2014-06-10
就只有一片文档吧
2 楼
qindongliang1922
2014-03-18
qq911110 写道
请问为什么IDF的值都是一样的为1
就一篇测试文章,当然是1了
1 楼
qq911110
2014-03-18
请问为什么IDF的值都是一样的为1
发表评论
-
如何使用Spark大规模并行构建索引
2016-02-01 12:54 2724使用Spark构建索引非常简单,因为spark提供了更高级的 ... -
Lucene4.3进阶开发之纯阳无极(十九)
2014-12-09 16:37 2737原创不易,转载请务必注明,原创地址,谢谢配合! http:/ ... -
Lucene4.3进阶开发之潇湘夜雨(十七)
2014-02-13 23:14 2812转载请务必注明,原创 ... -
Lucene4.3进阶开发之高山流水(十六)
2014-02-12 22:22 3647转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之溪山行旅(十五)
2014-02-11 00:24 3631转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之日照光华(十四)
2014-01-24 09:25 3966转载请务必注明,原创 ... -
Lucene4.3进阶开发之礼敬如来(十三)
2014-01-23 00:40 3920转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之千象奔鸣(十二)
2014-01-18 23:30 3239转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之气定六合(十一)
2014-01-18 22:13 1629转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之见龙在田(十)
2014-01-18 00:11 1599转载请务必注明,原创 ... -
Lucene4.3进阶开发之亢龙有悔( 九)
2014-01-17 00:00 1549转载请务必注明,原创 ... -
Lucene4.3进阶开发之李代桃僵( 八)
2014-01-15 18:54 1606转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之潜龙勿用( 七)
2014-01-14 20:38 1687转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之柳暗花明( 六)
2014-01-05 15:33 3907转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之二渡天劫( 五)
2014-01-03 01:58 3270转载请务必注明,原创 ... -
Lucene4.3进阶开发之漫漫修行( 四)
2013-12-31 01:50 3026转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之入乡随俗(三)
2013-12-25 15:20 4607转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之乱世丛生(二)
2013-12-17 01:10 3783转载请务必注明,原创地址,谢谢配合! http://qind ... -
Lucene4.3进阶开发之初入仙界(一)
2013-11-25 15:40 5563转载请务必注明,原创地址,谢谢配合! http://qind ...
相关推荐
在"lucene4.3 按坐标距离排序"这个主题中,我们将探讨如何在Lucene 4.3版本中利用地理位置信息进行文档排序,特别是在处理地理空间搜索时的应用。 首先,Lucene 4.3引入了对地理空间搜索的支持,这允许我们根据地理...
Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会...
lucene4.3增删改查的的一个工具类,对新手来说是一份不可多得的入门资料。
全文检索lucene 4.3 所用到的3个jar包,包含lucene-queryparser-4.3.0.jar、 lucene-core-4.3.0.jar、lucene-analyzers-common-4.3.0.jar。
《Lucene高级搜索进阶项目_04》 在深入探讨Lucene的高级搜索进阶项目时,我们首先需要理解Lucene的核心概念及其在信息检索中的应用。Lucene是一个高性能、全文本搜索库,它提供了丰富的搜索功能,包括布尔运算、...
lucene4.3源代码 censed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information ...
本课程由浅入深的介绍了Lucene4的发展历史,开发环境搭建,分析lucene4的中文分词原理,深入讲了lucenne4的系统架构,分析lucene4索引实现原理及性能优化,了解关于lucene4的搜索算法优化及利用java结合lucene4实现...
Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。在Java编程环境中,它为开发者提供了强大的文本检索功能,使得在海量数据中快速查找相关信息变得简单易行。本篇文章将详细探讨Lucene 4.3.1版本的...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
在本课程中,我们主要探讨了Lucene 4.x版本的高级进阶应用,特别是针对大规模文档搜索引擎的构建。Lucene作为一个开源全文搜索引擎库,它提供了高效、灵活的索引和搜索功能,是构建高性能搜索系统的基石。在这个部分...
1.XunTa是在lucene4.3上创建的通过“知识点”来找人的搜人引擎。 输入一个关键词(或组合),XunTa返回一个排名列表,排在前面的人是与该关键词(组合)最相关的“达人”。 可访问 http://www.xunta.so立即体验...
结合笔者的实际开发经验,总结了一些新的开发技巧和开发思路,并对网上流传的一些错误...本书既可为零起点的Lucene初学者提供系统全面的学习指导,也可帮助有相关经验的开发者解决在开发过程中遇到的一些难题和疑惑。
在高级进阶部分,我们将重点探讨Lucene在索引、搜索、排序、过滤以及分词器等方面的高级用法,旨在帮助开发者掌握Lucene的精髓,打造高效、精确的搜索体验。 1. **Document与索引更新**: 在Lucene中,`Document`...
【Lucene4.X实战类baidu搜索的大型文档海量搜索系统】课程主要涵盖了Lucene搜索引擎的各个方面,包括基础和高级进阶。以下是课程的主要知识点: 1. **Lucene入门与系统架构**:介绍Lucene的基本概念,以及其系统...
Lucene是Java开发的开源库,它提供了文本分析、索引和搜索功能,使得开发者能够轻松地在应用程序中实现复杂的搜索功能。这个项目的重点在于提升对Lucene高级特性和优化技巧的理解。 首先,我们要了解Lucene的核心...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...
共13页07.Lucene搜索实战1 共4页08.Lucene搜索实战2 共5页09.Lucene搜索深入实战1 共5页10.Lucene搜索深入实战2 共11页11....Lucene高级进阶1 共23页16.Lucene高级进阶2 共4页17.Lucene高级进阶3 共4页18.Lucene排序...