admin管理员组文章数量:1530085
Lunece全文检索
1,什么是全文检索,
lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,但它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎(英文与德文两种西方语言)。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者是以此为基础建立起完整的全文检索引擎。Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java信息检索程序库。人们经常提到信息检索程序库,虽然与搜索引擎有关,但不应该将信息检索程序库与搜索引擎相混淆。
Lucene3.0官网http://lucene.apache/core/3_0_0/core/overview-summary.html
2,为什么使用全文检索
现在的检索方案
二,全文检索原理
传统通过数据库搜索,sql语句,模糊查询,大量模糊查询,数据不精准,对数据库性能有很大影响
而全文检索是通过文档中存放索引搜索,对服务器压力,数据处理,优化,减轻数据库压力,有很大帮助。
三,实现主要关键内容:
1,创建索引(索引就是添加的域)
2,索引路径(Directory)
3,Searcher(语法解析器)
4,BooleanQuery(组合查询)
5,BooleanClause()
BooleanClause用于表示布尔查询子句关系的类,
包 括:BooleanClause.Occur.MUST,BooleanClause.Occur.MUST_NOT,BooleanClause.Occur.SHOULD。
必须包含,不能包含,可以包含三种.有以下6种组合:
a.MUST和MUST:取得连个查询子句的交集。
b.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。
c.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
d.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
e.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
f.MUST_NOT和MUST_NOT:无意义,检索无结果。
)
四,主要步骤(直接上代码)
public static final String QUERY_FIELD1 = NAMES;//设置域
/**
* 对应数组
*/
//域查询对应数组(BooleanClause.Occur.SHOULD对应参数)
public static final BooleanClause.Occur[] QUERY_FLAGSFOUR1 = {BooleanClause.Occur.SHOULD};
// 创建索引
//org.apache.lucene.document.Document (这个包)
1,创建索引
String path = "/LuneceProject/WebContent/WEB-INF/lunece/news.txt";//索引存放目录,可以自己设置内容
Directory directory = new SimpleFSDirectory(new File(path));//创建目录
boolean exist = IndexReader.indexExists(directory);//检测目录是否存在
IndexWriter writer = new IndexWriter(directory, new StandardAnalyzer(
Version.LUCENE_30), !exist, IndexWriter.MaxFieldLength.LIMITED);
if (exist) {
File file = new File(path);
if (file.exists()) {
// 文件删除
file.delete();
}
Document doc=Document();//创建文档对象
//contenxt是一个对象,Name添加到域
doc.add(new Field(NAMES,context.getName().toString(), Field.Store.YES,
Field.Index.NOT_ANALYZED));//是否分域查询,是否拆词
2,通过参数检索
3,通过BooleanQuery进行检索
4,接收检索结果
5,多参数检索通过域
lunece高级检索:可以多条件检索,检索filed对应文档域,对应索引,时间,参数,Id,站点ID,Store,范围,时间升降序。
(可以参考网站:https://www.chedong/tech/lucene.html)
注意事项:使用lucene检索,要更新索引,不然数据会异常,lucene版本要注意
版权声明:本文标题:Lunece全文检索搜索引擎 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/xitong/1726553778a1075300.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论