`

lucene4.7(3) 全文检索之 相关类

 
阅读更多
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;
		} 

}

 

分享到:
评论

相关推荐

    Lucene4.7-Web 例子

    1. 配置依赖:首先,需要在项目中引入Lucene4.7的相关jar包,如`lucene-core`, `lucene-analyzers-common`, `lucene-queryparser`等,这些可以从提供的"依赖的Jar包截图.png"中查看。 2. 创建索引:利用Lucene API...

    Lucene4.7+IK Analyzer中文分词入门教程

    Lucene是一个开源的全文检索库,它提供了文本分析、索引和搜索的核心工具。在这个入门教程中,我们将使用Lucene 4.7版本,结合IK Analyzer,一个专门针对中文分词的开源分析器,来学习如何构建一个简单的搜索引擎。 ...

    lucene4.7官方完整包

    《Lucene 4.7:官方完整包详解》 Lucene是一个开源的全文搜索引擎库,由Apache软件基金会开发并维护。作为Java平台上的一个高性能、可扩展的信息检索库,Lucene为开发者提供了强大的文本搜索功能。本文将深入探讨...

    lucene4.7相关jar包

    lucene4.7相关jar包 以及IKAnalyzer分词jar包

    Lucene 4.7 测试案例

    3. **多字段搜索**:Lucene 4.7支持同时在多个字段上执行复杂的查询,用户可以更灵活地定义搜索范围。 4. **近实时搜索**:Lucene引入了NRT(Near Real Time)搜索,允许在添加或更新文档后几乎立即看到结果,而...

    lucene4.7 开发简单实例

    Lucene 是一款强大的全文搜索引擎库,广泛应用于各种信息检索系统中。在本实例中,我们将深入探讨Lucene 4.7版本,涵盖索引的创建、修改、删除,以及查询时的排序、分页、优化和高亮显示等功能。此外,我们还将了解...

    ssh集成Lucene4.7demo

    接下来,Lucene是Apache软件基金会的一个开源全文检索库,它可以快速地在大量数据中进行全文搜索。在这个项目中,Lucene 4.7被用于建立索引和执行搜索操作,通过索引可以大大提高查询效率。而IKAnalyzer是针对中文的...

    lucene4.7所需jar包

    IKAnalyzer2012FF 是一个针对中文处理的开源分词器,特别适合于做搜索引擎或者信息检索相关的应用。它基于前缀词典的动态扩展词典方式,能够较好地解决新词识别问题。IKAnalyzer对Lucene的集成使得开发者能够在...

    apache Lucene4.7最全最新的jar包

    Apache Lucene是一个高性能、全文本搜索库,由Java编写,被广泛用于开发搜索引擎和需要文本检索功能的应用程序。Apache Lucene 4.7是该库的一个版本,它提供了丰富的功能和改进,使得开发者能够轻松地在他们的应用中...

    Lucene.Net 实现全文检索

    4. **全文检索**:用户通过统一的输入框提交查询,应用接收到请求后,使用 Lucene.Net 的 `QueryParser` 类构建查询对象。然后,通过 `IndexSearcher` 对查询进行执行,并返回匹配的文档。搜索结果通常按照相关性...

    Lucene 4.7 常用jar集合

    Lucene 是一个高性能、全文本搜索库,由 Apache 软件基金会开发,广泛应用于各种 Java 应用程序中,特别是那些需要高效检索功能的系统。在这个"Lucene 4.7 常用jar集合"中,包含了Lucene 4.7版本的一些核心组件,...

    lucene 4.7 jar

    Lucene 是一个开源的全文检索库,由Apache软件基金会维护,是Java开发的。这个"lucene 4.7 jar"文件是Lucene 4.7.0版本的归档包,包含了所有必要的类库,使得开发者可以直接在自己的项目中使用,而无需从头构建或...

    使用Lucene4.7实现搜索功能,分页+高亮

    标题中的“使用Lucene4.7实现搜索功能,分页+高亮”表明我们要讨论的是如何利用Apache Lucene 4.7版本来构建一个具备搜索、分页和高亮显示功能的系统。Lucene是一个高性能、全文本搜索引擎库,它提供了强大的文本...

    Lucene全文检索引擎

    3. **索引(Index)**:索引是Lucene的核心,它是对文档集合的结构化表示,使得能快速进行全文检索。Lucene通过分词(Tokenization)、词干提取(Stemming)、去除停用词(Stopword Removal)等过程将原始文本转换...

    lucene-4.7.0全套jar包

    这次提供的“lucene-4.7.0”压缩包包含了Lucene 4.7.0版本的所有核心组件和相关模块,是构建基于文本搜索应用的基础。 Lucene的主要特性包括: 1. **分词与索引**:Lucene使用高效的分词器将文档内容分解成独立的...

    lucene全文检索简单索引和搜索实例

    《Lucene全文检索:简单索引与搜索实例详解》 Lucene是Apache软件基金会的开源项目,是一款强大的全文检索库,被广泛应用于Java开发中,为开发者提供了构建高性能搜索引擎的能力。在本文中,我们将深入探讨如何基于...

    基于Lucene的实时全文检索系统(含论文)

    本文主要是研究了全文检索技术的基本原理以及Lucene的架构和工作原理,并介绍了基于Lucene的实时全文检索引擎的设计实现过程。并提供了一个基于Web的简单实现。最后通过实验的方式,对实现的实时全文检索引擎的性能...

    lucene.net1.4.3全文检索源文件

    《Lucene.NET 1.4.3全文检索技术深度解析》 Lucene.NET是一个开源的、基于Java Lucene的全文检索引擎,专为.NET Framework设计。这个版本是1.4.3,它提供了强大的文本搜索功能,使得开发者能够快速集成到自己的应用...

    Lucene4 全文检索

    **Lucene4 全文检索详解** Lucene4 是 Apache 软件基金会的一个开源全文检索库,它为开发者提供了强大的文本搜索功能。作为一个高级的搜索引擎工具包,Lucene4 提供了完整的索引和搜索机制,使得在文件和数据库中...

Global site tag (gtag.js) - Google Analytics