⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contextlistener.java~1~

📁 全文搜索源码,基于开源项目Lucene编写,开发语言为JAVA,本程序做为LUCENE的示例DEMO
💻 JAVA~1~
字号:
package com.ht.lucenedemo;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;

public class ContextListener extends HttpServlet implements ServletContextListener, ServletContextAttributeListener {
  private ResultSet rs = null;
  private DataSource ds = null;
  private Statement stmt = null;
  private Connection conn = null;

  public void contextInitialized(ServletContextEvent sce){
  try{
    Context initCtx = new InitialContext();
    Context envCtx = (Context) initCtx.lookup("java:comp/env");
    ds = (DataSource) envCtx.lookup("jdbc/myoracle");
    conn = ds.getConnection();
    stmt = conn.createStatement();
    rs = stmt.executeQuery("select id,name from cas_cn_nplap");

    Analyzer luceneAnalyzer = new StandardAnalyzer();
    Directory indexDir = new RAMDirectory("D:\\luceneIndex");
    IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
    long startTime = new java.util.Date().getTime();int i = 0;
    while (rs.next()) {
      Document document = new Document();
      document.add(Field.Text("id", String.valueOf(rs.getLong("id"))));
      document.add(Field.Text("contents", rs.getString("name")));
      indexWriter.addDocument(document);i++;
    }
    indexWriter.optimize();
    indexWriter.close();
    long endTime = new java.util.Date().getTime();
    System.err.println("建立索引时间: " + (endTime - startTime) + " 毫秒");
    System.err.println("读取数据库记录数: " + i);
    rs.close();
    stmt.close();
    conn.close();
    }catch(Exception e){e.printStackTrace();}
  }

   public void contextDestroyed(ServletContextEvent sce) {
  }
  public void attributeAdded(ServletContextAttributeEvent scab) {
  }
  public void attributeRemoved(ServletContextAttributeEvent scab) {
  }
  public void attributeReplaced(ServletContextAttributeEvent scab) {
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -