我正在尝试将phpmyadmin上的mysql数据库索引到solr中。
由@MatsLindh解决
我试图找到必要的信息,但没有找到有关此设置的教程。
我的数据库: 我的mysql数据库是本地托管的,可以通过phpmyadmin访问。这是管理页面。
如您所见,我有一个名为solrtest的数据库,其中的表solr具有字段ID,日期,问题和解决方案。
现在要链接我的数据库,在线教程有点不一致。最一致的部分告诉我,我将需要使用Solrs DataImportHandler和mysql-connector-java。另一个人也提到了jdbc插件。我已经将.jar文件安装并放在了solr / dist目录中。 在某些教程中,它们也位于contrib文件夹中,但我留在/ dist中。
我的文件: 我创建了一个名为solrhelp的核心,并在solhelp / conf文件中进行了以下更改。
solrconfig.xml
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\" regex="solr-dataimporthandler-7.5.0.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\" regex="solr-dataimporthandler-extras-7.5.0.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\" regex="mysql-connector-java-8.0.13.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\" regex="sqljdbc41.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\" regex="sqljdbc42.jar" />
<requestHandler name=" /dataimport" class=" org.apache.solr.handler.dataimport.DataImportHandler">
<lst name=" defaults">
<str name=" config">data-config.xml</str>
</lst>
</requestHandler>
<requestHandler name " /dataimport" class=org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="name">solrhelp</str>
<str name="driver">jdbc:mysql.jdbc.Driver</str>
<str name="url">jdbc:mysql://localhost:8983/solrtest</str>
<str name="user">root</str>
<str name="password"></str>
</lst>
</requestHandler>
创建的data-config.xml
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:8983/solrtest"
user="root"
password=""/>
<document>
<entity name="solr"
pk="id"
query="select id, date, Problem, Solution from solr"
>
<field column="id" name="id"/>
<field column="date" name="date"/>
<field column="Problem" name="Problem"/>
<field column="Solution" name="Solution"/>
</entity>
</document>
</dataConfig>
和managed-schema.xml
<field name="id" type="string" indexed="true" stored="true" multiValued="false" />
<field name="pdate" type="date" indexed="true" stored="true" multiValued="false" />
<field name="Problem" type="text_general" indexed="true" stored="true" />
<field name="Solution" type="text_general" indexed="true" stored="true" />
我对社区的问题相当广泛,我深表歉意。在尝试发布此数据库之前,我想知道我所缺少的一切。我认为我没有正确编辑我的文件,并且我真的不知道在尝试发布之前测试它们的方法。 应该注意的是,在dist文件夹中,我有两个版本的jdbc,并且在我的solrconfig.xml文件中都有。 向更好的教程或文档的任何方向将不胜感激。
更新的文件 solrconfig
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\"
regex="solr-dataimporthandler-7.5.0.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\"
regex="solr-dataimporthandler-extras-7.5.0.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\contrib\dataimporthandler\lib"
regex="mysql-connector-java-8.0.13.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\contrib\dataimporthandler\lib"
regex="sqljdbc41.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\contrib\dataimporthandler\lib"
regex="sqljdbc42.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
数据配置
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:8983/solrtest/solr"
user="root"
password=""/>
<document>
<entity name="solr"
pk="id"
query="select * from solr"
>
<field column="id" name="id"/>
<field column="date" name="date"/>
<field column="Problem" name="Problem"/>
<field column="Solution" name="Solution"/>
</entity>
</document>
</dataConfig>
答案 0 :(得分:1)
您不“通过phpmyadmin”导入。您可以使用与MySQL服务器的连接信息。没有涉及http。 jdbc:mysql://localhost:3306/dbname
将是您的情况下的字符串,假设MySQL与您运行Solr的计算机在同一台计算机上。
请特别注意连接字符串和3306
中的端口号(dbname
)。它应该引用您的 MySQL 服务器的值,而不是Solr服务器的值。
答案 1 :(得分:0)
此问题已由@MatsLindh解决
我的问题是配置语法。下面是更正后的data-config.xml和solrconfig.xml
数据配置
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.cj.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solrtest"
user="root"
password=""/>
<document>
<entity name="solr"
pk="id"
query="select * from solr"
>
<field column="id" name="id"/>
<field column="date" name="date"/>
<field column="Problem" name="Problem"/>
<field column="Solution" name="Solution"/>
</entity>
</document>
</dataConfig>
solrconfig
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\"
regex="solr-dataimporthandler-7.5.0.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\dist\"
regex="solr-dataimporthandler-extras-7.5.0.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\contrib\dataimporthandler\lib"
regex="mysql-connector-java-8.0.13.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\contrib\dataimporthandler\lib"
regex="sqljdbc41.jar" />
<lib dir="C:\Program Files\Solr\solr-7.5.0\contrib\dataimporthandler\lib"
regex="sqljdbc42.jar" />
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>