私は現在のサーバーバージョンをアップグレードするためにsolr6で遊び始めました。Solrj RuntimeException:最初のタプルはメタデータタプルではありません
私はhere上でコードを実行しようとしたが、私は、私は取得していますコードを実行する場合:
java.sql.SQLException: java.lang.RuntimeException: First tuple is not a metadata tuple
at org.apache.solr.client.solrj.io.sql.StatementImpl.executeQuery(StatementImpl.java:70)
at com.sematext.blog.App.main(App.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: java.lang.RuntimeException: First tuple is not a metadata tuple
at org.apache.solr.client.solrj.io.sql.ResultSetImpl.<init>(ResultSetImpl.java:75)
at org.apache.solr.client.solrj.io.sql.StatementImpl.executeQuery(StatementImpl.java:67)
... 6 more
を私のコードは、私はそこに何が起こっているかを把握しようとしたが、
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class App
{
public static void main(String[] args)
{
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try{
String connectionString = "jdbc:solr://zkhost:port?collection=test&aggregationMode=map_reduce&numWorkers=1";
connection = DriverManager.getConnection(connectionString);
statement = connection.createStatement();
resultSet = statement.executeQuery("select id, text from test limit 5");
while(resultSet.next()){
String id = resultSet.getString("id");
String nickname = resultSet.getString("text");
System.out.println(id + " : " + nickname);
}
}catch(Exception e){
e.printStackTrace();
}finally{
if (resultSet != null) {
try {
resultSet.close();
} catch (Exception ex) {
}
}
if (statement != null) {
try {
statement.close();
} catch (Exception ex) {
}
}
if (connection != null) {
try {
connection.close();
} catch (Exception ex) {
}
}
}
}
}
です上記以外のログはありません。そしてSolrの側では、ログは大丈夫に見える:
2016-05-04 15:52:30.364 INFO (qtp1634198-41) [c:test s:shard1 r:core_node1 x:test] o.a.s.c.S.Request [test] webapp=/solr path=/sql params={includeMetadata=true&numWorkers=1&wt=json&version=2.2&stmt=select+id,+text+from+test+limit+5&aggregationMode=map_reduce} status=0 QTime=3
2016-05-04 15:52:30.382 INFO (qtp1634198-46) [c:test s:shard1 r:core_node1 x:test] o.a.s.c.S.Request [test] webapp=/solr path=/select params={q=(*:*)&distrib=false&fl=id,text,score&sort=score+desc&rows=5&wt=json&version=2.2} hits=5624 status=0 QTime=1
例外がスローされ、関連する部分がある: org.apache.solr.client.solrj.io.sql.ResultSetImpl
Object isMetadata = this.metadataTuple.get("isMetadata");
if(isMetadata == null || !isMetadata.equals(true)) {
throw new RuntimeException("First tuple is not a metadata tuple");
}
とクラスパス:
solr-solrj-6.0.0
commons-io-2.4
httpclient-4.4.1
httpcore-4.4.1
httpmime-4.4.1
zookeeper-3.4.6
stax2-api-3.1.4
woodstox-core-asl-4.4.1
noggit-0.6
jcl-over-slf4j-1.7.7
slf4j-api-1.7.7
エラーがSolrのログから「includeMetadata = true」の部分を疑っ(なぜなら、クエリのコードまたは欠落のparamsのエラーのいくつか欠けているのハンドラの起こっている、それがあります私はカールするときにそこにない)?誰もが同様の問題をsolrjとSQLを使用していた?