
全文搜索引擎lucene3.5
咸鱼最牛逼
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
9、学习Lucene3.5索引搜索之其他搜索
原创 2018-02-08 17:16:14 · 248 阅读 · 0 评论 -
12、学习Lucene3.5索引之分词原理解析
1.分词基本流程解析2.Tokenizer分类(Tokenizer:主要负责接收字符流Reader,将Reader进行分词操作)3.TokenFilter分类(将分好词的语汇单元,进行各种各样的过滤)4.TokenStream中需要保存的数据(TokenStream:分词器做好处理之后得到的一个流,这个流中存储了分词的各种信息,可以通过TokenStream有效的获取分词单元)...原创 2018-02-20 16:32:14 · 290 阅读 · 0 评论 -
13、学习Lucene3.5索引之通过TokenStream显示分词
1.显示分词词汇public static void displayToken(String str, Analyzer analyzer){ try { /** * TokenStream tokenStream(String fieldName, Reader reader): * 获取TokenStream(分词流) ...原创 2018-02-20 17:30:46 · 275 阅读 · 0 评论 -
14、学习Lucene3.5索引之同义词分词器设计思路
1.同义词分词器设计思路原创 2018-02-21 10:53:29 · 259 阅读 · 0 评论 -
15、学习Lucene3.5索引之同义词分词器具体实现
1.首先创建同义词过滤器package synonymous;import org.apache.lucene.analysis.TokenFilter;import org.apache.lucene.analysis.TokenStream;import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;impo...原创 2018-02-21 19:14:03 · 271 阅读 · 0 评论 -
16、学习Lucene3.5索引之自定义排序
public void testSearch1(){ /** * Sort(SortField field):定义排序规则 * SortField(String field, int type):定义排序的域及其域类型 * SortField(String field, int type, boolean reverse):参数三 是否降序 * So...原创 2018-02-21 21:56:17 · 288 阅读 · 0 评论 -
17、学习Lucene3.5索引之使用Filter(过滤器)搜索
/** * 在搜索到的结果中再用过滤器过滤: * TermRangeFilter():范围过滤器 * NumericRangeFilter.newIntRange():整型范围过滤器 * QueryWrapperFilter():Query封装过滤器(可以封装一个Query来限制搜索范围) */ @Test public void ...原创 2018-02-22 11:10:17 · 571 阅读 · 0 评论 -
18、学习Lucene3.5索引之自定义评分
/** * 自定义评分流程: * 1.创建一个评分域 * 2.根据原有Query(termQuery)和评分域Query(scoreQuery)创建自定义的MyCustomScoreQuery对象 * 2.1创建自定义的MyCustomScoreQuery对象 * 2.2重载“getCustomScoreProvider()”方法 * 3.自定义评分步骤: * ...原创 2018-03-02 21:15:26 · 256 阅读 · 0 评论 -
19、学习Lucene3.5索引之高亮搜索
/** * Lucene高亮显示: * 1.引入“lucene-highlighter”包 */public class HighLighter { private IndexReader indexReader; public void highLightTest(){ try { String str = "我是一只丑小鸭,咿...原创 2018-03-20 12:51:46 · 192 阅读 · 0 评论 -
20、学习Lucene3.5索引之近实时搜索
/** * lucene实现近实时搜索: * lucene通过NRTManager这个类来实现近实时搜索。所谓近实时搜索即在索引发生改变时,通过线程跟踪,在相对很短的时间反映 * 给用户程序的调用。 * NRTManager通过管理IndexWriter对象,并将IndexWriter的一些方法(增删改)例如addDocument,deleteDocument等方法暴露给...原创 2018-03-21 10:52:07 · 314 阅读 · 0 评论 -
11、学习Lucene3.5索引搜索之分页显示
方法一:将所有的结果搜索出来,再进行分页public void searchPage(String queryCondition, int pageIndex, int pageSize){ IndexReader indexReader = null; try { Directory directory = FileIndexUtil.getDirectory()...原创 2018-02-20 14:47:51 · 277 阅读 · 0 评论 -
18、学习Lucene3.5索引之自定义过滤器(Filter)
使用场景:比如限时特价,就可用通过过滤器,只显示符合条件的特价商品案例:1、自定义过滤器public class MyFilter extends Filter { /** * 目的:实现所有被删掉的索引,不再显示 * 思路:利用OpenBitSet对象,设置所有被搜索出来的对象值为1(set()),然后利用被删除条目的id,去搜索 * 索引,将搜...原创 2018-03-14 21:28:09 · 385 阅读 · 0 评论 -
10、学习Lucene3.5索引搜索之QueryParser
/** * Lucene搜索之QueryParser */public void searchByQueryParser(){ IndexSearcher indexSearcher = createIndexSearcher(); //1、创建QueryParser对象,参数二为默认搜索域 QueryParser queryParser = new QueryPar...原创 2018-02-08 17:17:28 · 241 阅读 · 0 评论 -
2、学习Lucene3.5之搜索
/** * 利用我们创建的索引,进行搜索 */public void search(){ IndexReader indexReader = null; try { //1、创建Directory(去哪里搜索索引) Directory directory = FSDirectory.open(new File("e:/lucene/index0原创 2018-02-06 20:36:59 · 243 阅读 · 0 评论 -
3、学习Lucene3.5之索引创建--域选项
/** * Field(String name, String value, Field.Store store, Field.Index index)方法解析: * 参数一:key * 参数二:value * 参数三:是否存储到硬盘(存储域选项) * 1.Field.Store.YES:表示把这个域中的内容完全存储到文件中,方便进行文本的还原 * 2.Field.St原创 2018-02-06 20:39:33 · 220 阅读 · 0 评论 -
4、学习Lucene3.5之索引删除、更新
(1)删除索引/** * 删除索引 */ public void deleteIndex(){ IndexWriter indexWriter = createIndexWriter(); /** * deleteDocuments()参数解析: * 第一种:Term term 删除特定的索引(原创 2018-02-06 20:45:46 · 300 阅读 · 0 评论 -
5、学习Lucene3.5之索引加权操作
//加权document.setBoost(0.5f);原创 2018-02-06 20:47:31 · 222 阅读 · 0 评论 -
6、学习Lucene3.5之对日期和数字进行索引
/** * 为数字和日期建立索引: * NumericField(String name, int precisionStep, Store store, boolean index) * 为这两项建立索引有专门的方法,NumericField(),其中第四个参数不再是索引的方式,而是是否进行索引 *///为数字建立索引NumericField numericField = new N原创 2018-02-06 20:48:51 · 306 阅读 · 0 评论 -
7、学习Lucene3.5之IndexReader和IndexWriter注意事项
(1)IndexReader 一般全局唯一,无需关闭。在搜索索引时,创建IndexSearcher对象即可,关闭IndexSearcher即可/** * 创建创建读索引工具:IndexReader * 问题:若IndexReader全局唯一,则当我们在搜索索引的过程中,索引发生改变(比如:用IndexWriter删除某个索引),但是搜 * 索到的索引并没有改变?原创 2018-02-06 20:52:26 · 1063 阅读 · 0 评论 -
1、学习Lucene3.5之创建索引
创建索引:/*** 建立索引*/public void index(){IndexWriter indexWriter = null;try {//1、创建Directory(索引文件的物理位置,放在内存中还是硬盘上)// Directory directory = new RAMDirectory();//第一种方式:创建索引到内存中//FSDirectory.open(...原创 2018-02-06 20:34:48 · 274 阅读 · 0 评论 -
8、学习Lucene3.5索引搜索之TermRange
原创 2018-02-08 10:32:56 · 264 阅读 · 0 评论 -
21、学习Lucene3.5索引之近实时搜索常用工具类
public class LuceneContext { /** * 将该类设置成单例模式,向外只开放轻量级的接口(诸如:IndexSearcher), * 重量级的变量(诸如:NRTManager、SearcherManager)全部设成私有访问权限. */ private static LuceneContext luceneContext...原创 2018-03-22 10:05:28 · 231 阅读 · 0 评论