lucene 应用
lucenedto 类 用于区分
增加索引:
储存文件
File indexFile = new File(indexDirPath + "/" + entity.getUrlType());
indexFile.mkdirs();
if (!indexFile.exists()) {
try {
indexFile.createNewFile();
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
创建 Directory
Directory directory = null;
directory = new SimpleFSDirectory(indexFile);
索引配置:IndexWriterConfig indexWriterConfig = new IndexWriterConfig(
Version.LUCENE_30, analyzer);
创建索引模式:CREATE,覆盖模式; APPEND,追加模式
indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE);
indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.APPEND);
始化创建器
indexWriter = new IndexWriter(directory, indexWriterConfig);
增加Document
Document doc = new Document();
doc.add(new Field("userId", entity.getUserId(), Field.Store.YES,Field.Index.NOT_ANALYZED));
doc.add(new Field("url", url, Field.Store.YES,Field.Index.ANALYZED));
doc.add(new Field("title", title, Field.Store.YES,Field.Index.ANALYZED));
写入
indexWriter.addDocument(doc);
更新
Term term = new Term("id", entity.getUserID());
indexWriter.updateDocument(term, doc);
关闭
indexWriter.close();
删除索引:
Directory directory;
directory = new SimpleFSDirectory(indexDir);
indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND);
indexWriter = new IndexWriter(directory, indexWriterConfig);
Term term = new Term("id", entity.
getUserId ());
indexWriter.deleteDocuments(term);
关闭
indexWriter.close();
查询检索
File indexFile = new File(indexDirPath + "/" +fileName);
打开
Directory dir = FSDirectory.open(indexFile);
IndexSearcher indexSearcher = new IndexSearcher(dir);
indexSearcher.setSimilarity(new IKSimilarity());
TopScoreDocCollector topCollector = TopScoreDocCollector.create(indexSearcher.maxDoc(), true);
indexSearcher.search(query, filter, topCollector);
hits = topCollector.topDocs().scoreDocs;
命中数
totalHits = topCollector.getTotalHits();
doc = indexSearcher.doc(hits[i].doc);
设置高亮
SimpleHTMLFormatter simpleHtmlFormatter = new SimpleHTMLFormatter( "<font color=\"red\">", "</font>");
Highlighter highlighter = new Highlighter(simpleHtmlFormatter, new QueryScorer(query));
TokenStream tokenStream = analyzer.tokenStream("text", new StringReader(text));
分享到:
相关推荐
### Lucene应用开发揭秘第四讲知识点详解 #### 一、概览 《Lucene应用开发揭秘第四讲》是由觉先华老师主讲的一次技术分享,主要围绕如何设计高效的索引格式来进行讲解。本讲中重点介绍了词典的存储方式以及倒排表...
在探讨“Lucene应用中Pdf文档文本数据提取方法研究”的主题下,我们深入研究了如何在基于Lucene的全文检索系统中高效处理和提取Pdf文档中的文本数据。Lucene作为一款开源的全文检索引擎,虽然提供了强大的全文检索...
**Lucene 应用程序扩展在 ASP.NET 中的实践与应用** Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发。它提供了强大的搜索功能,被广泛应用于各种应用程序,包括网站、数据库和文档管理。在 ASP.NET ...
**Lucene在Web项目中的应用** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,它提供了完整的搜索解决方案,包括索引构建、搜索功能以及分词处理。在Java Web项目中,Lucene能够帮助开发者实现高效、...
Lucene应用程序可以用于各种领域,包括文本搜索、图片搜索和视频搜索等。 在上面的代码中,我们使用了Lucene搜索引擎库构建了一个文本搜索应用程序。该应用程序可以搜索TXT文件中的指定内容,并返回搜索结果。 ...
《Lucene实战 第2版 》基于Apache的Lucene 3 0 从Lucene核心 Lucene应用 案例分析3个方面详细系统地介绍了Lucene 包括认识Lucene 建立索引 为应用程序添加搜索功能 高级搜索技术 扩展搜索 使用Tika提取文本 Lucene...
《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本...
《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本...
启动Tomcat,WebLucene应用会自动解压并部署。 4. **数据库连接配置** WebLucene需要一个数据库来存储索引和其他元数据。你需要在`src/main/resources/config.properties`中配置数据库连接信息,包括数据库类型...
在提供的案例中,你可以找到一个简单的Lucene应用实例。这个案例可能包含了以下部分: 1. **索引创建**: 包含读取数据源(如文件或数据库),创建Analyzer,将数据转换为Lucene的Document对象,并通过IndexWriter...
一个简单的Lucene应用实例是搜索文本文档。例如,开发者可以创建一个索引目录,然后指定一个包含文本文档的数据目录。使用`Analyzer`(如CJKAnalyzer)对文本进行分析,通过`IndexWriter`将文档内容写入索引。这样,...
1. **Lucene基础知识**:介绍Lucene的基本概念,如文档、字段、术语、倒排索引和查询解析,以及如何创建一个基本的Lucene应用。 2. **索引构建**:涵盖如何将结构化和非结构化数据转化为可搜索的索引,包括分词器的...
《Lucene4.7在Web应用中的实践:结合SpringMVC与MyBatis3》 在信息化时代,搜索引擎已经成为我们日常获取信息的重要工具。Apache Lucene作为一款强大的全文搜索引擎库,为开发者提供了丰富的功能,帮助构建高效、可...
在实践中,会遇到如数据导入、更新、删除等问题,解决这些问题有助于提升开发者的Lucene应用能力。 总结,Lucene 5为开发者提供了强大且灵活的全文检索功能,通过深入学习其源码,尤其是拼音检索和分词器的运用,...
《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取...
lcene实战(第2版)》基于apache的lucene3.0,从lucene核心、lucene应用、案例分析3个方面详细系统地介绍了lucene,包括认识lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用tika提取文本、...
在 "luceneDemo" 中,可能包含了一个简单的 Lucene 应用示例,比如: - `search.jsp`: 这是一个 JSP 文件,通常用于接收用户输入的查询字符串,然后调用后端服务进行搜索。 - `WEB-INF`: 这个目录在 Java Web 应用...
要将Weblucene应用于你的网站,你需要遵循以下步骤: - **安装与配置**:下载Weblucene的源代码或二进制包,根据官方文档配置相关参数,如索引目录、日志设置等。 - **创建索引**:使用Weblucene提供的工具,抓取并...
此文件可能是完整的Lucene应用案例,涵盖了更复杂的搜索功能,如: - 多字段搜索:支持对多个字段进行同时搜索,比如搜索标题和内容。 - 布尔查询:允许用户使用AND、OR、NOT等逻辑运算符组合多个查询条件。 - 断词...
**Lucene 全文检索引擎概述** Lucene 是一个开源的..."lucene示例"可以帮助初学者理解并实践 Lucene 的主要功能,而提供的 jar 包则是运行 Lucene 应用的基础。学习并掌握 Lucene,将有助于提升应用程序的搜索体验。