赞
踩
在平时的开发当中,首先肯定是将数据存在数据库的,所以对数据库数据建立索引很重要,下面废话不多说,进入主题
我们已经建立了solr_home目录,solr_home在项目中我们是用来存储索引的,所以这一篇就从这里开始。
在webapps中solrhome下新建一个文件夹名字叫做my_core(名字不固定,可以随便取,但是这个名字在后面的配置中会有所关联。)然后在my_core文件下新建一个名字叫做conf的文件夹(这个文件名字最后不要改。)然后把官网下下来的solr项目中solr-6.2.0\server\solr\configsets\data_driven_schema_configs\conf下的所有东西复制到conf中去。(注意不要复制错!)最后把solr-6.2.0\example\example-DIH\solr\db\conf下的admin-extra.html, admin-extra.menu-bottom.html ,admin-extra.menu-top.html三个文件也复制到conf中去。
把mysql所需的jar包和solr-6.2.0\dist下的solr-dataimporthandler-6.2.0.jar和solr-dataimporthandler-extras-6.2.0.jar都复制到项目WEB-INF\lib下。然后在solrconfig.xml文件中加入
|
|
就是把WEB-INF\lib里面的jar包配置到项目中,我这里用的是绝对地址。这段代码大约在solrconfig.xml的75行处,前面有一堆类似的代码。
在MYSQL中新建一张表。我这里的表名叫goods,你也可以自己建,这个没有要求,主要是之后的配置,按数据表配就行了。我的建表语句如下:
|
|
在solrconfig.xml的
|
|
之上添加:
|
|
然后在conf下新建data-config.xml文件。内容如下:
|
|
解释一下:
dataSource是数据库数据源。Entity就是一张表对应的实体,pk是主键,query是查询语句。Field对应一个字段,column是数据库里的column名,后面的name属性对应着Solr的Filed的名字。其中solrdata是数据库名,goods是表名。
其中deltaQuery是增量索引,原理是从数据库中根据deltaQuery指定的SQL语句查询出所有需要增量导入的数据的ID号。然后根据deltaImportQuery指定的SQL语句返回所有这些ID的数据,即为这次增量导入所要处理的数据。核心思想是:通过内置变量“${dih.delta.id}”和 “${dataimporter.last_index_time}”来记录本次要索引的id和最近一次索引的时间。
最后在conf文件下的managed-schema配置field信息:
|
|
注意:id,name,number,updateTime是我们上面数据库的字段。下面三个field是系统本身的不能删除,否则会运行错误。
启动tomcat,并在URL中输入http://127.0.0.1:8080/solr/index.html 路径。在core Selector选择刚刚添加的core。
导入数据
这里解释一下这些选项:
full-import:全量导入,它会覆盖原有的索引
delta-import:即增量导入,它会在原有索引的基础上追加
verbose:这个选项设为true的话,会打印导入的一些中间过程的详细信息,有利于调试以及了解内部操作细节
clean:表示是否在导入数据创建索引之前先清空掉原有的索引
commit:表示是否立即提交索引
optimize:表示是否优化索引
debug: 表示是否开启调试模式
导入出错日志
query成功
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。