gpt4 book ai didi

solr - 在 DataStax Enterprise 中将 PreparedStatement 与 solr_query 结合使用

转载 作者:行者123 更新时间:2023-12-01 22:19:26 25 4
gpt4 key购买 nike

我正在尝试使用 PreparedStatementsolr_query 使用以下代码:

PreparedStatement preparedStatement = cassandraSession.prepare(
"SELECT * FROM users WHERE solr_query = 'username:? OR email:?';"
);

BoundStatement boundStatement = new BoundStatement(preparedStatement);

ResultSet results = cassandraSession.execute(
boundStatement.bind(
username,
email
)
);

当我执行上面的代码时,出现以下异常:java.lang.IllegalArgumentException:准备好的语句只有 0 个变量,提供了 2 个值

如何正确使用 solr_query 的预准备语句?

我正在使用 DataStax Enterprise 4.5.3,它使用 Cassandra 2.0.11.82 和 Solr 4.6.0.2.8。我正在使用 DataStax Java 驱动程序。

最佳答案

抱歉,CQL 不支持字符串常量内的变量替换,只支持完整的字符串常量。无论如何,Solr 查询字符串在每次执行 SELECT 语句时都会再次解析,因此让 Solr 查询字符串“准备好”不会节省任何开销,因此您应该简单地将整个 Solr 查询字符串作为准备好的语句变量提供,如“WHERE solr_query = ?”。

关于solr - 在 DataStax Enterprise 中将 PreparedStatement 与 solr_query 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27105289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com