1.索引目录的提取方案:这里既可以每个单独使用,也可以嵌套使用 //这里采用了一些优化措施:先从外存中取出索引,然后存到内存中
Directory fsdirectory = FSDirectory.getDirectory(path);//把索引库放到外存中使用
RAMDirectory directory= new RAMDirectory(fsdirectory);//把索引库放到内存中使用
IndexSearcher indexSearcher = new IndexSearcher(directory);
2.高亮器的使用:
1.定义高亮器
Formatter formatter = new SimpleHTMLFormatter("<font color='red'>", "</font>");
Scorer scorer = new QueryScorer(query);
Highlighter highlighter = new Highlighter(formatter, scorer);
// 默认值100既把在取出来前面多少个词中取关键词
Fragmenter fragmenter = new SimpleFragmenter(50);
highlighter.setTextFragmenter(fragmenter);
2.使用高亮器:
//在这里使用高亮
String text = highlighter.getBestFragment(analyzer,"content",document.get("content"));
if(text!=null){
//修改传过去的内容
document.getField("content").setValue(text);
}//注意要在转换之前使用高亮器,不让起不到高亮的作用了
Article article = ArticleDocumentUtils
.Document2Article(document);
list.add(article);
3.排序查询的使用:(默认的情况,根据相关度排序)
1).相关度排序:在建立索引的时候,
①.在Field上做文章:
f.setBoost(2F); // 默认值为1F,在存入索引库的时候,就给他个评分参数
②.在Document上做文章:
doc.setBoost(2F);//默认值为1F,
2).制定字段排序
①.
Sort sort = new Sort(new SortField("id", true));
// 生成排序器,为true表示降序,为false表示升序
②.
TopDocs topDocs = indexSearcher.search(query, null, 100, sort);
//指定排序器,使用
4.Query 查询
1).词查询(Term
):Query query = new TermQuery(new Term("content", "相关度"));
2).范围查询(Rangle):根据词的范围
Term lowerTerm = new Term("id", NumberTools.longToString(3));
Term upperTerm = new Term("id", NumberTools.longToString(10));
// Query query = new RangeQuery(lowerTerm,upperTerm, true);
// 不包含边界,相应的queryString为:id:{00000000000003 TO 0000000000000a}
Query query = new RangeQuery(lowerTerm, upperTerm, false);
3).通配符查询(Wildcard)// ? 代表一个字符// * 代表0个或多个字符:
Query query = new WildcardQuery(new Term("content", "相关*"));
4).布尔查询:这是词查询的组合
布尔查询的时候主要是要在两个关键词进行逻辑运算;
首先建立两个词:
Query query1 = new TermQuery(new Term("content", "检索"));
Query query2 = new TermQuery(new Term("content", "相关度"));
然后逻辑运算:
BooleanQuery booleanQuery = new BooleanQuery();
分享到:
相关推荐
java全文索引,高亮显示,lucene-4.7.0工具类
该一整套lucene开发jar包包含以下内容...contrib\analyzers\common\lucene-analyzers-3.0.1.jar(分词器) contrib\highlighter\lucene-highlighter-3.0.1.jar(高亮) contrib\memory\lucene-memory-3.0.1.jar(高亮)
包括索引、高亮、IK分词及MMSEG分词 其中MMSEG中的BUG: TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see ...
lucene 4.7.2支持java 6 ,之后的版本需要java 7以上,创建、删除、修改索引,搜索支持通用对象(可以根据对象类型搜索),可以范围搜索、排序、高亮,希望有所帮助
该项目中包括创建索引,增删改查索引,以及关键字高亮显示实例~~对于初学者很有帮助,该项目是基于Lucene3.0
目录 序言: 1 第一章 LUCENE基础 2 1.1 索引部分的核心类 2 1.2 分词部分的核心类 2 1.3 搜索部分的核心类 2 第二章 索引建立 3 2.1 创建Directory 3 2.2 创建Writer 3 2.3 创建文档并且添加索引 4 2.4 查询索引的...
此资源配合《android+lucene实现全文检索并高亮关键字》使用http://download.csdn.net/detail/reality_jie/6335113
文档中包含Lucene4.0.0版本jar包,中文分词器jar包,Lucene实例代码 1:建立索引 2:各种搜索方式方法 3:删除索引 4:检查索引文件 5:恢复删除的索引 6:强制删除 7:更新索引 8:合并索引 9:高亮回显 供大家参考...
全文检索介绍 索引 分词 Lucene介绍 Lucene应用详解 索引器 检索器 条件查询 实用工具及高亮器 Lucene综合应用——仿搜索引擎
NULL 博文链接:https://gaojunwei.iteye.com/blog/1842881
Solr 可以高亮显示搜索结果,通过索引复制来提高可用,性,提供一套强大 Data Schema 来定义字段,类型和设置文本分析,提供基于 Web 的管理界面等。 Key-Value Store Indexer 这个组件非常关键,是 Hbase 到 Solr ...
go 数据架构索引,包括 JSON 通过强大的配置智能默认备份支持字段类型Text, Numeric, Date支持查询类型Term, Phrase, Match, Match Phrase, PrefixConjunction, Disjunction, BooleanNumeric Range, Date Range人类...
这是lucene的使用案例,实现了对word文档中的关键字检索,并将检索出的内容高亮打印出来
然后在自己的搜索页面可以进行搜索 搜索结果会像百度一样高亮显示 框架使用的是SSH 对学习lucene开发的人员来说这个项目非常有价值 值得参考">项目的页面都存在WebRoot WEB INF jsp下 网上搜索博客园网页的地址 ...
Java全文检索器 Lucene3.6教程 搜索引擎介绍 Lucene介绍、结构分析 Lucene的全文索引实现 Lucene原理分析、优化 中文分词器使用 高亮器的使用 过滤与排序 常见的各种搜索 如果需要源码的,请到我的资源去找,谢谢
是使用java+lucene+jsp开发的搜索引擎。其中包括排序,高亮显示,以及分页等功能。效果类似百度,很炫。
lucene基于java的全文检索,实现了索引添加,删除,修改,高亮显示查询
一个简单的lucene demo,使用Lucene5.5+springmvc+mysql开发,包括索引的增删改查,查询中可以高亮显示+分页+自定义排序,有兴趣的朋友可以看看