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

📄 queryaction.java~6~

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

import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionForm;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.Action;

import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.Date;

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 java.sql.*;
import javax.sql.*;
import javax.naming.*;

public class QueryAction extends Action {
  public ActionForward execute(ActionMapping mapping, ActionForm form,
                               HttpServletRequest request,
                               HttpServletResponse response) {
    private ResultSet rs = null;
    private DataSource ds = null;
    private Statement stmt = null;
    private Connection conn = null;

    QueryForm queryForm = (QueryForm) form;

    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");
    while(rs.next()){
      rs.getString("name");
      rs.getLong("id");
    }

    File   indexDir = new File("D:\\luceneIndex");
File   dataDir  = new File("D:\\luceneData");
Analyzer luceneAnalyzer = new StandardAnalyzer();
File[] dataFiles  = dataDir.listFiles();
IndexWriter indexWriter = new IndexWriter(indexDir,luceneAnalyzer,true);
long startTime = new Date().getTime();
for (int i = 0; i < dataFiles.length; i++) {
  if (dataFiles[i].isFile() && dataFiles[i].getName().endsWith(".txt")) {
    System.out.println("Indexing file " + dataFiles[i].getCanonicalPath());
    Document document = new Document();
    Reader txtReader = new FileReader(dataFiles[i]);
    document.add(Field.Text("path", dataFiles[i].getCanonicalPath()));
    document.add(Field.Text("contents", txtReader));
    indexWriter.addDocument(document);
  }
}
indexWriter.optimize();
indexWriter.close();
long endTime = new Date().getTime();

System.out.println("It takes " + (endTime - startTime) +
                   " milliseconds to create index for the files in directory "
                   + dataDir.getPath());

    return null;
  }
}

⌨️ 快捷键说明

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