Cassandra 和 Solr 集成:无法执行查询

Cassandra and Solr integration: Unable to execute query

我正在尝试集成 cassandra 和 solr。 我正在使用 solr -6.6.0 版本,cassandra 3.10 版本和 java 8.

我的 solrconfig.xml 添加了这些行

<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-jdbc-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-all-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-thrift-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="libthrift-.*\.jar"/>
<lib dir="/home/bkoganti/solr-6.6.0/contrib/dataimporthandler/" regex="cassandra-driver-core-*\.jar"/>
.
.
.
.
<requestHandler name="/dataimport" class="solr.DataImportHandler">
    <lst name="defaults">
      <str name="config">sample-data-config.xml</str>
    </lst>
</requestHandler>`

样本数据-config.xml

<dataConfig>
        <dataSource type="JdbcDataSource" driver="org.apache.cassandra.cql.jdbc.CassandraDriver" url="jdbc:cassandra://127.0.0.1:9160/demo" autoCommit="true"/>
        <document name="content">
                <entity name="test" query="SELECT id,org,name,dep,place,sal from tutor" autoCommit="true">
                        <field column="id" name="id" />
                        <field column="org" name="org" />
                        <field column="name" name="name" />
                        <field column="dep" name="dep" />
                        <field column="place" name="place" />
                        <field column="sal" name="sal" />
                </entity>
        </document>
</dataConfig>

我向托管模式添加了这些

<field name="org" type="string" indexed="true" stored="true" required="true" />
<field name="dep" type="string" indexed="true" stored="true" required="true" />
<field name="place" type="string" indexed="true" stored="true" required="true" />
<field name="sal" type="string" indexed="true" stored="true" required="true" />

在 运行 solr 上并尝试从示例核心导入数据,我无法导入。我不断收到此错误。

我无法弄清楚我哪里错了,有人可以帮助我吗?提前致谢。

该错误意味着 solr 无法通过 jdbc 到达 cassandra。首先,您应该检查是否可以使用 java 从 Solr 主机连接到 cassandra,方法是使用一些数据库工具,如 squirrelSQL 或类似工具。

一旦您确认可以通过这种方式访问​​它,请转到 solr。但是你有一些东西阻止它(防火墙,一些错误的端口,谁知道......)

JDBC 支持的最后一个 cassandra 版本是 1.2.5。后来,Datatstax 为 Cassandra 开发了连接 JAVA 应用程序所需的驱动程序。但是,datastax 驱动程序不能与 solr 一起使用,因为它们有自己的 DSE 搜索引擎。

This jdbc 可用的驱动程序与最新版本的 cassandra 兼容。使用这个 JDBC 我可以整合。

而且 this JDBC 有效。

对 cassandra 使用 nodetool enablethrift。你的错误很明显是说 unable to connect 。连接被拒绝 .. 在启用节俭后使用 nodetool info 检查它。希望这能解决您的问题。