`
fffddgx
  • 浏览: 38611 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

lucene索引

阅读更多

说是第8天,其实就是起个计数作用最近太懒了

提取出了网页,并生成了5000多个txt文本文件,下一步就是要对其索引,并存入数据库。对于存进数据库,初学者可能觉得为什么还要用到数据库呢,lucene已经提供了查询,索引。我的理解是存入数据库可以方便我们jsp页面显示。如果数据库中的数据项过于庞大(构建搜索引擎的目的就是为了从庞大的数据中筛选我们需要的信息,所以这点是避免不了的),单纯的用sql来检索速度会很慢,所以有了lucene来帮助我们,它的速度应该是要远远快于数据库。lucene查出了我们要的信息的id,我们可以根据此id在数据库中把该条信息提取出来,这样方便页面显示,效率也会有所提高。所以,下面的工作就是柳暗花明了

先说索引,有了lucene的帮助,索引其实非常简单,我写了一个类,索引和存入数据库综合起来了

里面的核心方法:

 

	public void initialize() {
		try {
			productJDBC = new ProductJDBC( "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=searchdb","sa","");
			indexer = new ProductIndexer(indexPath);
		}catch(Exception e){
			e.printStackTrace();
		}
	}

	public void setDirectories(String[] directories) {
		this.directories = directories;
	}

	protected void process() throws Exception {

		if (productJDBC == null) {
			throw new Exception("Database connection failed, pls retry!!");
		}
		
		if (directories == null || directories.length == 0) {
			return;
		}

		try {
			for (int i = 0; i < directories.length; i++) {
				File f = new File(directories[i]);
				traverse(f);
			}
			
			closeDB();
			closeIndex();
			
		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	private void traverse(File file) throws Exception {
		
		String [] files = file.list();
		for (int i = 0; i < files.length; i++) {
			
			File productfile = new File(file, files[i]);
			String fname = productfile.getName();
			
			BufferedReader reader = new BufferedReader(new FileReader(productfile));
			
			String url = pro(reader.readLine());
			String imageURI = pro(reader.readLine());
			String summary = pro(reader.readLine());
			String name = fname.substring(0,fname.indexOf("_"));
			String type = fname.substring(fname.indexOf("_")+1,fname.length()-4);
			
			StringBuffer content = new StringBuffer();
			String line = reader.readLine();
			while (line != null){
				content.append(line).append("\r\n");
				line = reader.readLine();
			}
			
			
			// make the Product object
			Product p = new Product();
			p.setCategory("汽车");
			p.setName(name);
			p.setType(type);
			p.setImageURI(imageURI);
			p.setOriginalUrl(url);
			
			String contentstr = content.toString();
			p.setContent(contentstr);
			p.setUpdatedtime("");
			p.setSummary(summary);
			int nextid = insert2DB(p);
			buildIndex(p, nextid);
			
		}
		
		optimizeIndex();
	}

 由于篇幅原因就不一一贴出来了

经过10分钟左右吧,就可以把所有的txt文本文件处理成功。

 

分享到:
评论

相关推荐

    Lucene索引器实例

    **Lucene索引器实例详解** Lucene是一个高性能、全文本搜索库,由Apache软件基金会开发,被广泛应用于各种搜索引擎的构建。它提供了一个高级的、灵活的、可扩展的接口,使得开发者能够轻松地在应用程序中实现全文...

    lucene索引查看工具及源码

    在使用 Lucene 进行信息检索时,有时我们需要对建立的索引进行查看、调试或分析,这时就需要借助 Lucene 的索引查看工具。 Luke 是一个非常实用的 Lucene 索引浏览器,全称为 Lucidworks Luke。它允许用户以图形化...

    lucene 索引 查看 工具

    这就是"Lucene 索引 查看 工具"的用途,它可以帮助我们分析和理解 Lucene 索引的工作原理。 主要知识点: 1. **Lucene 索引**:Lucene 的索引是一种倒排索引,它将文档中的词项(tokens)映射到包含这些词项的文档...

    lucene索引查看程序及代码

    《深入理解Lucene索引查看程序与代码》 在信息技术领域,搜索引擎的高效运作离不开底层索引技术的支持,而Lucene作为Apache软件基金会的一个开放源代码项目,正是一个强大的全文检索库,它提供了高效的文本搜索功能...

    深入 Lucene 索引机制

    以下是对Lucene索引机制的详细解析: 一、Lucene的索引过程 1. 文档分析:当向Lucene添加文档时,首先会经过一个分词器(Tokenizer),将文本拆分成一系列的词项(Token)。接着,这些词项会被过滤(Filter)和...

    Lucene索引和查询

    **Lucene索引和查询** Lucene是Apache软件基金会的开放源码全文搜索引擎库,它提供了文本检索的核心工具,使得开发者能够快速构建自己的搜索应用。本项目中的代码旨在展示如何利用Lucene对多个文件夹下的数据进行...

    lucene索引查看工具luck7.4.0

    `Luck`,全称`Luke`,是一款强大的Lucene索引浏览器和分析器工具,可以帮助开发者、数据分析师以及对Lucene感兴趣的人员查看、理解和调试Lucene索引。 `Luke 7.4.0`是这款工具的一个特定版本,它专门设计用来与...

    Lucene索引文件查看工具lukeall4.7.1

    《深入理解Lucene索引文件查看工具LukeAll 4.7.1》 在信息检索领域,Lucene作为一款强大的全文搜索引擎库,被广泛应用在各种数据检索系统中。然而,对于开发者来说,理解并调试Lucene创建的索引文件并非易事。此时...

    Lucene索引查看工具

    lukeall-0.9.jar为Lucene索引查看工具,方便大家查看索引

    Lucene 索引的简单使用

    以上就是关于“Lucene索引的简单使用”的详细介绍,包括其核心概念、创建和查询索引的步骤以及一些高级特性。希望对你理解和应用Lucene有所帮助。在实际开发中,可以根据需求选择合适的Analyzer,优化索引策略,以...

    luke源码--查看lucene索引文件

    《深入理解Luke:洞察Lucene索引文件》 在信息技术领域,搜索引擎的高效运作离不开对数据的快速检索,而Lucene作为开源全文检索库,扮演了核心角色。在这个过程中,Luke工具提供了一种直观的方式,让我们能够查看和...

    lucene索引文件格式介绍

    以下是对Lucene索引文件格式的详细说明。 首先,我们要理解Lucene索引的基本结构。一个Lucene索引位于一个文件夹中,这个文件夹包含了多个段(Segment)。每个段是独立的,包含了一组文档,并且可以与其他段合并。...

    lucene索引结构原理

    **Lucene索引结构原理** Lucene是Apache软件基金会的开放源代码全文搜索引擎库,它为Java开发人员提供了强大的文本搜索功能。理解Lucene的索引结构原理对于优化搜索性能和设计高效的搜索应用至关重要。 首先,我们...

    Lucene索引的基本操作

    **Lucene索引的基本操作** Lucene是一款由Apache软件基金会开发的全文检索库,它提供了高效、可扩展的全文检索功能。在Java开发环境中,Lucene是广泛使用的文本搜索工具,能够帮助开发者构建复杂的搜索引擎。本文将...

    很好的lucene索引查看工具,欢迎各位lucene研究者前来下载

    本文将详细介绍一款被称为“很好的lucene索引查看工具”的实用软件,旨在帮助用户更好地理解和调试Lucene索引。 Lucene索引查看工具是一款专为Lucene设计的可视化工具,它允许用户直观地浏览和分析由Lucene创建的...

    lucene 索引小示例

    《Lucene索引小示例解析》 Lucene是一个高性能、全文检索库,它由Apache软件基金会开发并维护。在Java编程环境中,Lucene被广泛应用于构建搜索功能,特别是对于大量文本数据的高效检索。本篇文章将通过一个简单的小...

    lucene索引查看工具

    这款已经老了,2.4以后的lucene索引用不了。我上传了最新版本的,有需要的话!请到http://download.csdn.net/source/1423241 下。一款可以查看Lucene分词后在索引的排名以及是否有无该词,很多时候用于查看有无需要...

    lucene索引查看工具luke8.0

    luke是一个用于Lucene/Solr/Elasticsearch 搜索引擎,方便开发和诊断的 GUI(可视化)工具。

    lucene索引结构原理.docx

    而在Lucene中,基本单位是Document,它同样由多个字段组成,但Lucene索引的是这些字段的内容,以加速文本检索。 - **索引构建**:Lucene支持增量索引和批量索引,可以处理数据源的小幅变化或大规模数据。数据库通常...

    lucene索引库查看器5.3.0

    《深入理解Lucene索引库查看器5.3.0》 Lucene是一个开源的全文检索库,被广泛应用于各种搜索引擎的开发。在对Lucene进行开发和调试时,一个强大的工具——Lucene索引库查看器(Luke)发挥了至关重要的作用。 Luke ...

Global site tag (gtag.js) - Google Analytics