-2

Solr4.0を使用して MySQL テーブルを行ごとにインデックス付けしたいと考えています。必要なJavaをインストールしました。データベースは「twitter_db」と呼ばれ、必要なテーブルは「つぶやき」と呼ばれるインデックスであり、ユーザーを使用してログインします:rootおよびパスワードなし

スキーマは次のように追加しました:

   <dataConfig>
        <dataSource driver="org.hsqldb.jdbcDriver" url="jdbc:mysql://localhost/twitter_db" user="root" password="" />
    <document name="tweet">
            <entity name="tweet" query="select * from tweets">
                <field column="tweet_id" name="tweet_id" />
                <field column="text" name="text" />            
                <field column="user" name="user" />
                <field column="tweet_time" name="tweet_time" />
                <field column="topic_kw" name="topic_kw" />
                <field column="timestamp" name="timestamp" />
            </entity>
        </document>
    </dataConfig>

solrconfig の変更は次のとおりです。

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler>

そして、私がヒットしたとき [root]:8983/solr/db/dataimport?command=full-import for full import

失敗します: GUI のエラー メッセージは次のとおりです。

インデックス作成に失敗しました。すべての変更をロールバックしました。

ログのエラーメッセージの部分は次のとおりです。

SEVERE: Exception while processing: tweet document : SolrInputDocument[]:org.apache.solr.handler.dataimport.DataImportHandlerException: Unable to execute query: select * from tweets Processing Document # 1
    at org.apache.solr.handler.dataimport.DataImportHandlerException.wrapAndThrow(DataImportHandlerException.java:71)
    at org.apache.solr.handler.dataimport.JdbcDataSource$ResultSetIterator.<init>(JdbcDataSource.java:252)
    at org.apache.solr.handler.dataimport.JdbcDataSource.getData(JdbcDataSource.java:209)

テーブルのデータベース選択で間違ったデータなのかな

私は同様の質問を試しました。それは同様の問題ですが、そこに答えが見つかりませんでした

4

1 に答える 1

0

MySQLドライバークラスを指しているのではなく、driver="org.hsqldb.jdbcDriver"hsqldbあることを確認してください。ドライバクラスをMySQLに適したドライバに更新してみてください。デバッグモードで実行できます。

于 2012-11-08T23:13:02.650 に答える