首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用PhpMyAdmin安装DataImportHandler

用PhpMyAdmin安装DataImportHandler
EN

Stack Overflow用户
提问于 2018-12-11 18:45:26
回答 2查看 110关注 0票数 0

我正在尝试将phpmyadmin上的mysql数据库索引到solr中。

由@MatsLindh解题

我试图找到必要的信息,但没有教程,我已经找到了处理这个设置。

我的数据库: mysql是本地托管的,并通过phpmyadmin访问。这是管理页面。

如您所见,我有一个名为solrtest的db,其中表solr具有字段id、日期、问题和解决方案。

现在要链接我的数据库,在线教程有点不一致。最一致的部分告诉我,我需要使用solrs DataImportHandler和mysql-连接器-java。另一个还提到了jdbc插件。我已经安装并将.jar文件放在我的solr/dist目录中。

在一些教程中,它们也包含在cont肋骨文件夹中,但我在/dist中保留了这些内容。

我的文件:我已经创建了一个名为solrhelp的核心,并在solhelp/conf文件中做了以下更改。

solrconfig.xml

代码语言:javascript
复制
<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>

创建的数据-config.xml

代码语言:javascript
复制
<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>

和托管模式the

代码语言:javascript
复制
 <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

代码语言:javascript
复制
  <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>

数据配置

代码语言:javascript
复制
<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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-12-14 22:05:49

这个问题由@MatsLindh解决

我的问题是配置语法。下面是更正的数据-config.xml和solrconfig.xml

数据配置

代码语言:javascript
复制
<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>

溶胶配置

代码语言:javascript
复制
<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>
票数 0
EN

Stack Overflow用户

发布于 2018-12-14 22:05:29

您不导入“通过phpmyadmin”。使用到MySQL服务器的连接信息。不涉及http。假设在运行Solr的同一台计算机上运行jdbc:mysql://localhost:3306/dbname,则MySQL将是您的示例中的字符串。

请密切注意连接字符串中的端口号(3306)和dbname。它应该引用MySQL服务器的值,而不是Solr服务器的值。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53730502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档