您的位置:首页 > 其它

关于solr--多表插入索引覆盖问题

2017-07-02 23:11 387 查看
问题描述:如果在solr中添加数据库中表数据:在solrhome中配置solrconfig.mxl文件,添加一个requestHandler。

 <requestHandler name="/dataimport"

class="org.apache.solr.handler.dataimport.DataImportHandler">

    <lst name="defaults">

      <str name="config">data-config.xml</str>

     </lst>

  </requestHandler> 

创建一个data-config.xml,保存到solrhome下的一个solrcore---->collection1\conf\目录下加入如下配置(

solrcore相当于mysql中一个数据库



<?xml version="1.0" encoding="UTF-8" ?>  

<dataConfig>   

<dataSource type="JdbcDataSource"   

  driver="com.mysql.jdbc.Driver"   

  url="jdbc:mysql://localhost:3306/lucene"   

  user="root"   

  password="root"/>   

<document>   

<entity name="product" query="SELECT pid,name,catalog_name,price,description,picture FROM products ">

 <field column="pid" name="id"/>

 <field column="name" name="product_name"/>

 <field column="catalog_name" name="product_catalog_name"/>

 <field column="price" name="product_price"/>

 <field column="description" name="product_description"/>

 <field column="picture" name="product_picture"/>

</entity>   

</document>   



这样重启tomcat--->选中collection1------>dataimport添加数据库索引即可,但是如果添加另外一张表id也是从1开始,则继续引入索引,会覆盖原原有相同id的索引。想要解决这个问题






需要将这个sql语句进行如下修改即可 将原有的pid的sql语句改为concat("book_",pid)



得到的结果为



可以看出这样在索引前加上前缀,则课解决id重复问题,就不会在覆盖原有的索引,并且,此时数据库的id并没有改变,只是将索引id更改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: