ストリームハンドラ 生のSQL

トピック作成者:ks-solruserml-bot (2024/08/29 11:14 投稿)
2
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/lk6y0683h8rj7vpxp0pcy3dok14noz33 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

こんにちは、

ストリームハンドラでテストを行っていますが、うまく動作するかどうか確信が持てません。

以下のクエリをテストしたところ:

192.168.1.100:8983/solr/my_collection/stream?expr=sql(stmt=SELECT NON_DOC_VALUES_FIELD FROM my_collection)

次の例外が発生しました:

{
"result-set": {
"docs": [
{
"EXCEPTION": "--> http://172.18.0.4:8983/solr/my_collection_shard2_replica_n1/:Failed to execute sqlQuery 'SELECT NON_DOC_VALUES_FIELD FROM my_collection' against JDBC connection 'jdbc:calcitesolr:'.
Caused by: Error while executing SQL "SELECT NON_DOC_VALUES_FIELD FROM my_collection": java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: --> http://172.18.0.4:8983/solr:NON_DOC_VALUES_FIELD{type=text,properties=indexed,tokenized,stored,multiValued,sortMissingLast,uninvertible} must have DocValues to use this feature.",
"EOF": true,
"RESPONSE_TIME": 36
}
]
}
}

また、以下のクエリをテストしたところ:

192.168.1.100:8983/solr/my_collection/stream?expr=sql(stmt=SELECT DOC_VALUES_FIELD FROM my_collection)

次のような例外が発生しましたが、これはDOC_VALUES_FIELDではなく_version_フィールドに関連しているようです:

{
"result-set": {
"docs": [
{
"EXCEPTION": "--> http://172.18.0.3:8983/solr/my_collection_shard1_replica_n4/:Failed to execute sqlQuery 'SELECT DOC_VALUES_FIELD FROM my_collection' against JDBC connection 'jdbc:calcitesolr:'.
Caused by: Error while executing SQL "SELECT DOC_VALUES_FIELD FROM my_collection": java.io.IOException: java.util.concurrent.ExecutionException: java.io.IOException: --> http://172.18.0.4:8983/solr:_version_{type=long,properties=indexed,stored,omitNorms,omitTermFreqAndPositions,uninvertible} must have DocValues to use this feature.",
"EOF": true,
"RESPONSE_TIME": 59
}
]
}
}

この2つ目のクエリは本来動作するべきでしょうか?
Solr Expressで生のSQLを使用する方法はありますか?

SQLハンドラについては知っていますが、SEを使用してより複雑な結果を得たいと考えています。

よろしくお願いします。
Koji

返信投稿者:ks-solruserml-bot (2024/08/29 11:14 投稿)

2つ目のSQLに order by someFieldWithDocvalues 句を追加してみてください。私の推測では、何かでソートする必要があるが、特にソートする指定がない場合はデフォルトで _version_ フィールドを使用しており、それにはDocValuesがないためエラーが発生しているのではないかと思います。

返信投稿者:ks-solruserml-bot (2024/08/29 11:14 投稿)

はい、ストリームハンドラーでうまくいきました:

sql(
stmt="SELECT my_field from my_collection ORDER BY my_field",
)

ありがとう!

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?