package com.dev3.main;
import java.io.Writer;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.*;
public class ExtractRaw {
public static void main(String[] args) {
String conn = "jdbc:mysql://localhost:3306/d_accesslog";
String username = "root";
String pwd = "root";
String sql = "select RawData from t_weblogic_test";
try (Connection con = DriverManager.getConnection(conn, username, pwd);
PreparedStatement ps = con.prepareStatement(sql);) {
ResultSet rs = con.createStatement().executeQuery(sql);
while (rs.next()) {
Document doc = new Document();
doc.add(new Field("RawData", rs, getString("RawData"), Field.Store.YES, Field.Index.UN_TOKENIZED));
Writer.addDocument(doc);
}
}
}
}
我曾尝试在互联网上关注本教程,其中一个教程与上面类似,但在doc.add()
中出现了一些错误,getString为undefined
,Index cannot be resolved or is not a field
也是编写者的方法addDocument
未定义。有人能帮我吗?我是lucene的新手,是否有新的方法可以在java上实现lucene?
此代码大多数不是Lucene代码,它是数据库访问代码。唯一的Lucene代码是while循环中的三行。
两个错误都可能与同一问题有关,因为while循环中的第二行需要将getString("RawData")
更改为rs.getString("RawData")
,如下所示:
doc.add(new Field("RawData", rs, rs.getString("RawData"), Field.Store.YES, Field.Index.UN_TOKENIZED));