`
sbl2255
  • 浏览: 218402 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Luence 数据库 Demo

 
阅读更多
package com.sea.index;

import java.io.File;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;

import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriterConfig;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.LockObtainFailedException;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;

public class DataBaseIndex {

	/**
	 * @param args
	 * @throws SQLException
	 * @throws IOException
	 * @throws LockObtainFailedException
	 * @throws CorruptIndexException
	 * @throws ParseException
	 */
	public static void main(String[] args) throws CorruptIndexException, LockObtainFailedException, IOException, SQLException, ParseException {
		// TODO Auto-generated method stub
		String url = "jdbc:oracle:thin:@10.1.80.170:1521:NETCOOL";
		String user = "uum";
		String pwd = "uum";

		DataBaseIndex test = new DataBaseIndex();
		test.makeIndexForDatabase(test.getConnection(url, user, pwd));
		test.findSM("P55A");
	}

	public void findSM(String str) throws IOException, ParseException {
		File file = new File("d:\\data");
		FSDirectory directory = FSDirectory.open(file);
		IndexReader reader = IndexReader.open(directory);
		IndexSearcher is = new IndexSearcher(reader);
		QueryParser query = new QueryParser(Version.LUCENE_36, "NAME", new StandardAnalyzer(Version.LUCENE_36));
		Query q1 = query.parse(str);
		ScoreDoc[] docs = is.search(q1, is.maxDoc()).scoreDocs;
		for (int i = 0; i < docs.length; i++) {
			Date start = new Date();
			String ip = is.doc(docs[i].doc).get("IP");
			String name = is.doc(docs[i].doc).get("NAME");
			String id = is.doc(docs[i].doc).get("ID");
			Date end = new Date();
			System.out.println("===========" + id + " : " +name+" : "+ip+"   "+(end.getTime() - start.getTime()) + "ms");
		}
	}

	public Connection getConnection(String url, String user, String password) {
		try {
			Class.forName("oracle.jdbc.OracleDriver");
			return DriverManager.getConnection(url, user, password);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}

	public ResultSet executeSQL(Connection conn, String sql) {
		try {
			Statement smt = conn.createStatement();
			return smt.executeQuery(sql);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return null;
	}

	public void makeIndexForDatabase(Connection conn) throws CorruptIndexException, LockObtainFailedException, IOException, SQLException {
		convert(executeSQL(conn, "select serial,name,new_netip from ams_asset_tab where new_netip is not null"));
	}

	public void convert(ResultSet rs) throws SQLException, CorruptIndexException, LockObtainFailedException, IOException {
		while (rs.next()) {
			File file = new File("d:\\data");
			FSDirectory directory = FSDirectory.open(file);
			IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_36, new StandardAnalyzer(Version.LUCENE_36));
			IndexWriter writer = new IndexWriter(directory, conf);
			Document doc = new Document();
			String serial1 = rs.getString("serial");
			String name1 = rs.getString("name");
			String ip1 = rs.getString("new_netip");
			System.out.println("serial:" + serial1 + "\t" + "name:" + name1 + "\t" + "ip:" + ip1);
			Field serial = new Field("ID", serial1, Field.Store.YES, Field.Index.ANALYZED);
			doc.add(serial);
			Field name = new Field("NAME", name1, Field.Store.YES, Field.Index.ANALYZED);
			doc.add(name);
			Field ip = new Field("IP", ip1, Field.Store.YES, Field.Index.ANALYZED);
			doc.add(ip);
			writer.addDocument(doc);
			writer.close();
		}
	}

}

 

分享到:
评论

相关推荐

    Luence搜索Demo

    《Luence搜索Demo详解》 在信息技术领域,搜索引擎已经成为数据检索不可或缺的一部分,而Luence作为一款高性能、可扩展的全文搜索引擎库,深受开发者喜爱。本文将深入探讨基于.NET平台的Luence.Net搜索Demo,帮助...

    lucene-4.10.1jar及demo

    描述中提到的"demo和demo详细制作方案"通常包括如何创建索引、如何执行查询、如何显示结果等步骤的示例代码。这些示例可以帮助初学者快速理解Lucene的工作原理,并能够动手实践。 1. **创建索引**: 首先,你需要...

    luence客户端测试软件luke

    "luence客户端测试软件luke" 指的是一个名为"Luke"的工具,它是针对Apache Lucene(一个流行的全文搜索引擎库)的客户端测试和分析工具。Luence可能是“Lucene”的拼写错误,但在这里我们假设指的是Lucene。 **描述...

    Luence和ElasticSearch面试准备.docx

    《Luence和ElasticSearch面试准备》 Lucene和ElasticSearch是两个在全文搜索引擎领域中广泛使用的开源工具。Lucene是一个高性能、全文本搜索库,而Elasticsearch则是在Lucene的基础上构建的一个分布式、RESTful风格...

    Luence.net搜索小程序

    《Luence.net搜索小程序深度解析》 在信息技术日益发达的今天,搜索引擎已成为数据挖掘与信息检索的重要工具。本文将深入探讨一款基于.NET平台的搜索引擎——Luence.net,它以其高效、灵活的特点,为开发者提供了...

    Luence原理及源码分析

    lucene 原理与分析,底层源码解析,应用场景及实践,相关配置

    luence索引例子

    描述中提到“使用luence索引数据库中的记录”,意味着我们将学习如何将数据库中的数据转化为Lucene可处理的格式,并创建索引。这个过程通常包括以下步骤: 1. **初始化Lucene**: 创建一个`Directory`对象,这是...

    IKAnalyzer和luence压缩包大全

    IKAnalyzer和Lucene是两个在中文处理领域广泛应用的开源项目。IKAnalyzer是一个专门针对中文的分词工具,而Lucene则是一个全文检索框架。这里我们深入探讨这两个组件以及它们的关联。 **IKAnalyzer** 是一个高性能...

    获取全部Luence数据

    ### 获取全部Luence数据 #### 知识点详解 **Lucene** 是一个高性能、全功能的文本搜索引擎库。在本文档中,我们将探讨如何通过Lucene获取索引中的所有文档,包括创建索引、查询索引以及遍历所有文档的具体步骤。 ...

    luence搜索

    1. 文档读取:首先,你需要将待搜索的数据(例如文件内容)读取并解析成Lucene的Document对象,每个Document对应数据库中的一条记录。 2. 添加记录:将Document对象添加到一个名为IndexWriter的对象中,这个过程...

    前后端分离的使用spring Mvc、 mybatis、 luence、 spring 开发的开源知识库系统的所有后端端源码

    在本项目中,Spring MVC作为后端的核心组件,负责接收前端请求,处理业务逻辑,与数据库交互,并返回响应数据。它的优点包括依赖注入、面向切面编程以及强大的异常处理能力。 接着,MyBatis是一个轻量级的持久层...

    lucene与sqlserver数据库实现索引的简单实例

    本实例将探讨如何结合Lucene和SQL Server数据库来实现高效的索引和搜索功能。 Lucene是一个由Apache软件基金会开发的全文检索库,它提供了一个高级的、可扩展的、基于Java的搜索程序库。Lucene的核心功能包括文档的...

    Luence简单实例

    Lucene的主要功能包括文档的索引和搜索,支持多种数据源,如文本文件、数据库等。在Java应用中集成Lucene,能够快速为应用程序添加全文搜索引擎,使得用户可以通过关键词对海量数据进行高效的查找。 **Lucene的基本...

    Luence的与盘古分词的使用软件

    2. **创建索引**: 对预处理的数据(如数据库中的文本内容)进行分词,然后使用Lucene的Document对象添加字段,并写入索引。 3. **用户输入处理**: 用户输入句子后,同样使用盘古分词进行分词,得到查询词汇。 4. *...

    luence4.6例子

    5. **luence46**: 这个压缩包可能包含了Lucene 4.6版本的源代码,源码提供了深入了解其内部工作原理的机会。你可以通过阅读和分析源代码,学习如何实现自己的搜索功能,或者优化现有系统的搜索性能。 通过对...

    Luence in Action 中英文pdf 版

    《Lucene in Action》是一本深入探讨Apache Lucene的权威指南,这本书的中英文PDF版本提供了全面了解和学习这个搜索引擎库的机会。Lucene是Java开发的一款高性能、全文本搜索库,广泛应用于各种需要强大搜索功能的...

    基于ajax与luence构建搜索引擎的设计和实现论文.doc

    该搜索引擎系统基于 Java,数据库是 MySql。主要完成的功能有:用爬虫获取网页;解析爬取的 html;解析后的数据插入到 MySql 数据库;通过 Lucene 建立索引;检索用户的关键词或关键字句;页面的呈现效果需要有 Ajax...

    Lucene结合Sql建立索引

    Lucene(这里用到的是Lucene.net版本也成为DotLucene)是一个信息检索的函数库(Library),利用它你可以为你的应用加上索引和搜索的功能. Lucene的使用者不需要深入了解有关全文检索的知识,仅仅学会使用库中的一个类,...

    Luence+Ikanalyzer+stopword+dic

    在搜索引擎和信息检索领域,Lucene是一个非常重要的开源全文搜索引擎库。它提供了高效的文本索引和搜索功能,被广泛应用于各种信息系统的后台。在Lucene中,为了提高搜索的准确性和效率,通常会使用到一些优化技术,...

    VerticalSearcher:基本的垂直搜索引擎,实现了基本的网络爬虫功能以及用Luence实现检索

    这些数据可能包括文本内容、链接、图片等,然后存储到本地数据库或文件系统中,供后续处理使用。Java作为广泛应用于Web开发的语言,其丰富的库和强大的并发处理能力使得编写高效爬虫成为可能。 接下来,我们关注的...

Global site tag (gtag.js) - Google Analytics