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

时间:2017-06-27 08:18:29

标签: solr cassandra integration

我试图整合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并尝试从示例核心导入数据时,我无法导入。我一直收到这个错误。

enter image description here

enter image description here

我无法弄清楚我错在哪里可以帮助我。提前谢谢。

3 个答案:

答案 0 :(得分:1)

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

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

并且this JDBC也有效。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

nodetool enablethrift用于cassandra。您的错误明确表示无法连接。使用nodetool info启用节俭后,连接被拒绝..希望这能解决您的问题。