关于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更改
<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更改
相关文章推荐
- 关于SQL SERVER建立索引需要注意的问题
- dbunit中关于插入datetime的问题
- 关于插入指定随机时间段的问题解答
- 关于SQL SERVER建立索引需要注意的问题
- wm5|ppc关于SD卡插入就运行问题的方法
- 关于含有标识字段的数据表中记录的插入问题解决(IDENTITY_INSERT)
- 关于sql索引的问题
- 关于对视图创建索引的一些问题
- 关于identity列的插入问题
- 问几个问题,关于p2p搜索和分布式索引还有.net无框架打包的问题
- 关于病毒模块插入系统、应用程序进程的问题
- 关于在WORD文档中插入图片的问题
- c# 关于LISTBOX的添加项的问题 以及不重复插入
- 关于sql server建立索引需要注意的问题
- 关于索引问题
- 关于病毒模块插入系统、应用程序进程的问题
- 关于sql server建立索引需要注意的问题
- 关于oracle插入特殊符号的问题
- 关于lucene断点续索引和增量索引的问题zz
- 关于对视图创建索引的一些问题