public class DBIndex{ public static final config _$=new config(); public static class config{ public static final Analyzer analyzer=new StandardAnalyzer(Version.LUCENE_47);//分词器 public String CLASS_PATH= Config.CLASS_PATH; public config(){ } public String getDatePath() { return CLASS_PATH+"query/index"; } public File getDataFile(){ return new File(getDatePath()); } public String getIndexPath() { return CLASS_PATH+"query/index"; } public File getIndexFile(){ return new File(getIndexPath()); } /** * 将字符串中HTML标记清空 * @param msg * @return String */ public String clearHTMLToString(String msg){ if(StringUtils.isEmpty(msg)){ return ""; } return msg.replaceAll("(?is)<(.*?)>","").replaceAll("\\s*|\t|\r|\n",""); } /**将查询出的Map对象,转换为Lucene中的Document对象。 * @param news * @return org.apache.lucene.document.Document * */ public void toDocument(IndexWriter iw,Map<String,Object> news)throws Exception{ Document doc = new Document(); Iterator iter = news.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Map.Entry) iter.next(); Object key = entry.getKey(); Object val=entry.getValue()==null?"":entry.getValue(); if("FILE_NAME".equals(key.toString().toUpperCase())){ List file=UpInfoService.toMapList(String.valueOf(val)); String textString=""; for(int i=0;i<file.size();i++){ Map map=(Map)file.get(i); textString+=map.get("description").toString(); } val=textString; }else if(val instanceof Date){ doc.add(new StringField(key.toString(),WebUtil.getDate((Date)val,"yyyy-MM-dd HH:mm:ss"), Field.Store.YES));//标题 }else{ doc.add(new StringField(key.toString(),clearHTMLToString(String.valueOf(val)), Field.Store.YES)); } } iw.addDocument(doc); } /** * 读取文件内容为String * @param file * @return String */ public String readFileContent(File file) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(file))); StringBuffer content = new StringBuffer(); for (String line = null; (line = reader.readLine()) != null;) { content.append(line).append("\n"); } return content.toString(); } catch (Exception e) { throw new RuntimeException(e); } } public boolean isEmpty(Object obj){ if(obj==null){ return true; } return "".equals(obj.toString()); } public boolean is(String filed,String ...filds){ for (String string : filds) { if(filed.equalsIgnoreCase(string)){ return true; } } return false; } }
相关推荐
1. 配置依赖:首先,需要在项目中引入Lucene4.7的相关jar包,如`lucene-core`, `lucene-analyzers-common`, `lucene-queryparser`等,这些可以从提供的"依赖的Jar包截图.png"中查看。 2. 创建索引:利用Lucene API...
Lucene是一个开源的全文检索库,它提供了文本分析、索引和搜索的核心工具。在这个入门教程中,我们将使用Lucene 4.7版本,结合IK Analyzer,一个专门针对中文分词的开源分析器,来学习如何构建一个简单的搜索引擎。 ...
《Lucene 4.7:官方完整包详解》 Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。作为Java平台上的一个高性能、可扩展的信息检索库,Lucene为开发者提供了强大的文本搜索功能。本文将深入探讨...
lucene4.7相关jar包 以及IKAnalyzer分词jar包
3. **多字段搜索**:Lucene 4.7支持同时在多个字段上执行复杂的查询,用户可以更灵活地定义搜索范围。 4. **近实时搜索**:Lucene引入了NRT(Near Real Time)搜索,允许在添加或更新文档后几乎立即看到结果,而...
Lucene 是一款强大的全文搜索引擎库,广泛应用于各种信息检索系统中。在本实例中,我们将深入探讨Lucene 4.7版本,涵盖索引的创建、修改、删除,以及查询时的排序、分页、优化和高亮显示等功能。此外,我们还将了解...
接下来,Lucene是Apache软件基金会的一个开源全文检索库,它可以快速地在大量数据中进行全文搜索。在这个项目中,Lucene 4.7被用于建立索引和执行搜索操作,通过索引可以大大提高查询效率。而IKAnalyzer是针对中文的...
IKAnalyzer2012FF 是一个针对中文处理的开源分词器,特别适合于做搜索引擎或者信息检索相关的应用。它基于前缀词典的动态扩展词典方式,能够较好地解决新词识别问题。IKAnalyzer对Lucene的集成使得开发者能够在...
Apache Lucene是一个高性能、全文本搜索库,由Java编写,被广泛用于开发搜索引擎和需要文本检索功能的应用程序。Apache Lucene 4.7是该库的一个版本,它提供了丰富的功能和改进,使得开发者能够轻松地在他们的应用中...
4. **全文检索**:用户通过统一的输入框提交查询,应用接收到请求后,使用 Lucene.Net 的 `QueryParser` 类构建查询对象。然后,通过 `IndexSearcher` 对查询进行执行,并返回匹配的文档。搜索结果通常按照相关性...
Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发,广泛应用于各种 Java 应用程序中,特别是那些需要高效检索功能的系统。在这个"Lucene 4.7 常用jar集合"中,包含了Lucene 4.7版本的一些核心组件,...
Lucene 是一个开源的全文检索库,由Apache软件基金会维护,是Java开发的。这个"lucene 4.7 jar"文件是Lucene 4.7.0版本的归档包,包含了所有必要的类库,使得开发者可以直接在自己的项目中使用,而无需从头构建或...
标题中的“使用Lucene4.7实现搜索功能,分页+高亮”表明我们要讨论的是如何利用Apache Lucene 4.7版本来构建一个具备搜索、分页和高亮显示功能的系统。Lucene是一个高性能、全文本搜索引擎库,它提供了强大的文本...
3. **索引(Index)**:索引是Lucene的核心,它是对文档集合的结构化表示,使得能快速进行全文检索。Lucene通过分词(Tokenization)、词干提取(Stemming)、去除停用词(Stopword Removal)等过程将原始文本转换...
这次提供的“lucene-4.7.0”压缩包包含了Lucene 4.7.0版本的所有核心组件和相关模块,是构建基于文本搜索应用的基础。 Lucene的主要特性包括: 1. **分词与索引**:Lucene使用高效的分词器将文档内容分解成独立的...
《Lucene全文检索:简单索引与搜索实例详解》 Lucene是Apache软件基金会的开源项目,是一款强大的全文检索库,被广泛应用于Java开发中,为开发者提供了构建高性能搜索引擎的能力。在本文中,我们将深入探讨如何基于...
本文主要是研究了全文检索技术的基本原理以及Lucene的架构和工作原理,并介绍了基于Lucene的实时全文检索引擎的设计实现过程。并提供了一个基于Web的简单实现。最后通过实验的方式,对实现的实时全文检索引擎的性能...
《Lucene.NET 1.4.3全文检索技术深度解析》 Lucene.NET是一个开源的、基于Java Lucene的全文检索引擎,专为.NET Framework设计。这个版本是1.4.3,它提供了强大的文本搜索功能,使得开发者能够快速集成到自己的应用...
**Lucene4 全文检索详解** Lucene4 是 Apache 软件基金会的一个开源全文检索库,它为开发者提供了强大的文本搜索功能。作为一个高级的搜索引擎工具包,Lucene4 提供了完整的索引和搜索机制,使得在文件和数据库中...