solr导入mysql数据建全量索引
2013-12-05 11:46
615 查看
背景:想要练习solr的各种操作,不能直接在服务器上做。所以在本地的windows系统上,尝试用mysql数据建solr全量索引(接之前的solr环境搭建内容)。
1.首先加入建立索引的相关配置,在solr\collection1\conf\solrconfig.xml文件里添加一个节点配置(具体如下)
3.配置完数据以及定义好别名后,需要将solr别名对应的数据类型定义下,这个步骤的配置文件在solr\collection1\conf\schema.xml里。找到<field...节点,在之后添加
4.配置好配置文件后,导入将要用到的jar包,主要是mysql驱动用的和solr导入用的,包名称mysql-connector-java-5.1.26-bin.jar,
solr-dataimporthandler-4.5.0.jar,solr-dataimporthandler-extras-4.5.0.jar(solr相关的两个包可以在下载后解压solr文件夹solr-4.5.0\dist里找到)
5.重启tomcat然后再访问solr建索引地址,http://localhost:8080/solr/#/collection1/dataimport//dataimport(也可以通过首页一步步点击到建索引地址页)如下图
点击Excute按钮就可以开始创建了,创建的时候最好勾选上下方的Auto-Refresh Status选项,方便查看索引创建信息,如果有错误,可以点击左上logo下的Logging选项,查看日志信息。
6.索引查询的时候在需要分词的字段别名上需要定义类型,以达到指定分词模式
例如:我需要分词查询的字段是goods_name,所以我需要在上面提到的配置文件schema.xml里将goods_name的type定义成textMaxWord(这个类型是在导入搜狗分词后配置的,详细的搜狗分词可以查看之前的内容/article/10096384.html)
7.到此solr导入mysql数据创建全量索引就结束了,后面有机会的话,会在看看solr增量索引创建相关的内容
备注:推荐一些solr相关的资料
qq交流群:187670960 solr中国官网:http://www.solr.cc/blog/
solr在线文档:http://www.solrcn.com/books/#2-en
1.首先加入建立索引的相关配置,在solr\collection1\conf\solrconfig.xml文件里添加一个节点配置(具体如下)
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst name="defaults"> <str name="config">data-config.xml</str> </lst> </requestHandler>2.创建数据配置文件solr\collection1\conf\data-config.xml
<dataConfig> <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/malltest" user="root" password="123456"/> <document name="search_object"> <entity name="goods_info" query="select goods_id,goods_name from ecm_goods where if_show=1 and closed=0 and price>0 and if_optimize!=1 "> <field column="goods_id" name="id"/> <field column="goods_id" name="goods_id"/> <field column="goods_name" name="goods_name"/> <entity name="store_info" query="select store_id,store_name from ecm_store where store_id='${goods_info.store_id}'"> <field column="store_id" name="store_id"/> <field column="store_name" name="store_name"/> </entity> <entity name="store_extends_info" query="select is_behalfof,is_entity, is_enterprise from ecm_store_extends where store_id='${store_info.store_id}'"> <field column="is_behalfof" name="is_behalfof"/> <field column="is_entity" name="is_entity"/> <field column="is_enterprise" name="is_enterprise"/> </entity> <entity name="spc_info" query="select SUM(stock) AS goods_stock from ecm_goods_spec where goods_id='${goods_info.goods_id}' group by goods_id"> <field column="goods_stock" name="goods_stock"/> </entity> <entity name="attr_temp_info" query="select attr_id from ecm_abgoods_attr_temp where goods_id='${goods_info.goods_id}' group by goods_id"> <field column="attr_id" name="attr_id"/> </entity> <entity name="ecm_goods_price" query="select lower_limit,price from ecm_goods_price where goods_id='${goods_info.goods_id}' AND price>0 group by goods_id"> <field column="price" name="price"/> <field column="lower_limit" name="lower_limit"/> </entity> </entity> </document> </dataConfig>此处的配置,问同事和查资料后,个人理解为获取到mysql数据库里的字段信息。并定义在solr里应用时对应的别名。
3.配置完数据以及定义好别名后,需要将solr别名对应的数据类型定义下,这个步骤的配置文件在solr\collection1\conf\schema.xml里。找到<field...节点,在之后添加
<!-- write yourself info start --> <field name="return_goods_status" type="int" indexed="true" stored="true"/> <field name="is_enterprise" type="int" indexed="true" stored="true"/> <field name="is_entity" type="int" indexed="true" stored="true"/> <field name="is_behalfof" type="int" indexed="true" stored="true"/> <field name="goods_name" type="textMaxWord" indexed="true" stored="true"/> <field name="goods_id" type="int" indexed="true" stored="true"/> <field name="store_id" type="int" indexed="true" stored="true"/> <!-- write yourself info end -->以上的别名字段类型配置决定了你的查询时可以用的条件字段和结果的展示字段,没配置的不会展示。
4.配置好配置文件后,导入将要用到的jar包,主要是mysql驱动用的和solr导入用的,包名称mysql-connector-java-5.1.26-bin.jar,
solr-dataimporthandler-4.5.0.jar,solr-dataimporthandler-extras-4.5.0.jar(solr相关的两个包可以在下载后解压solr文件夹solr-4.5.0\dist里找到)
5.重启tomcat然后再访问solr建索引地址,http://localhost:8080/solr/#/collection1/dataimport//dataimport(也可以通过首页一步步点击到建索引地址页)如下图
点击Excute按钮就可以开始创建了,创建的时候最好勾选上下方的Auto-Refresh Status选项,方便查看索引创建信息,如果有错误,可以点击左上logo下的Logging选项,查看日志信息。
6.索引查询的时候在需要分词的字段别名上需要定义类型,以达到指定分词模式
例如:我需要分词查询的字段是goods_name,所以我需要在上面提到的配置文件schema.xml里将goods_name的type定义成textMaxWord(这个类型是在导入搜狗分词后配置的,详细的搜狗分词可以查看之前的内容/article/10096384.html)
7.到此solr导入mysql数据创建全量索引就结束了,后面有机会的话,会在看看solr增量索引创建相关的内容
备注:推荐一些solr相关的资料
qq交流群:187670960 solr中国官网:http://www.solr.cc/blog/
solr在线文档:http://www.solrcn.com/books/#2-en
相关文章推荐
- Mysql5.0没有nvarchar,national varchar就是varchar
- 高性能MySql进化论(九):查询优化器常用的优化方式
- ios即时通讯客户端开发之-mac上安装MySQL
- [MySQL 写SQL]吃饭中被call起,帮她解决一个SQL的过程,
- mysql 忘记root用户密码破解
- mysql 关键字 字段 转义
- mysql 对某一个或者多个重复字段的筛选
- mysql如何删除重复记录
- Nodejs连接mysql
- ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)
- mysql优化———第二篇:数据库优化调整参数
- mysql优化———第二篇:数据库优化调整参数
- 解决 mysql主从失败
- MySQL 的数据类型
- 启动、停止、重启 MySQL 常见的操作方法:
- mysql登录报错“Access denied for user 'root'@'localhost' (using password: YES”的处理方法
- mysql 备忘
- MySql实现rownum的sql语句
- 13个mysql数据库的实用SQL小技巧
- mysql 变量