使用Apache lucene的更新方法

问题描述 投票:0回答:1
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为undefinedIndex cannot be resolved or is not a field也是编写者的方法addDocument未定义。有人能帮我吗?我是lucene的新手,是否有新的方法可以在java上实现lucene?

java sql-server lucene lucene.net
1个回答
0
投票

此代码大多数不是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));
© www.soinside.com 2019 - 2024. All rights reserved.