如何将Apache Solr与mysql连接

时间:2013-02-26 08:43:35

标签: php mysql apache solr

我想将Apache Solr Search Server与mysql服务器连接,以便我可以从我的数据库中获取过滤后的数据并将其转换为JSON或XML。

4 个答案:

答案 0 :(得分:11)

第1步: 创建一个新的xml文件db-data-config.xml并输入以下内容:

    <dataConfig>
    <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://`localhost`/database_name" user="" password=""/>
    <document>
    <entity name="table_name" query="select * from table_name" >
    <field name="solr_field_map" column="table_column_name" />
    <field name="name" column="name" />
    </entity>
    <entity name="emp" query="select id from emp">
<field name="id" column="id" />
    </entity>
    </document>
    </dataConfig>

第2步: 在solrconfig.xml中,添加:

 <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
      <str name="config">db-data-config.xml</str>
    </lst>
  </requestHandler>

第3步: 使用命令将数据从mysql源导入solr:

的http:// localhost:8983 / solr的/分贝/ dataimport命令=全进口

如果要在索引到solr之前修改字段,则可以在db-data-config.xml中的实体上创建变换器。Transformers are explained here

答案 1 :(得分:2)

您可以参考http://wiki.apache.org/solr/DataImportHandler#Oracle_Example,配置您的数据源,配置您的data-config.xml

答案 2 :(得分:2)

我也有同样的问题,要找到这个简单的教程并不容易。无论如何,我发现以下教程,它对我有用。 http://lasithtechavenue.blogspot.com/2013/11/crawling-mysql-database-with-apache-solr.html

如果我简要解释一下步骤。

  1. 在solr / collection1 / conf上创建一个配置文件,并在其上添加数据库信息和表列信息。

  2. 从solr / collection1 / conf / solrconfgig.xml指出配置文件

  3. 将未知字段添加到架构

  4. 添加dataimport和mysql相关的依赖项

答案 3 :(得分:1)

我过去的方式就是创建一个索引脚本。该脚本作为夜间进程运行,并提取要添加到搜索索引的mySQL数据,并指定solr显示相关搜索结果所需的所有信息。

此外,您可以在更新数据库时添加索引项,例如,如果创建了新用户,请将一些代码添加到插入新索引项的寄存器脚本中。

这很简单易行,solr文档非常好。

http://lucene.apache.org/solr/4_1_0/tutorial.html

希望这有帮助。