从solr下载Solr的zip包http://mirror.bit.edu.cn/apache/lucene/solr/7.3.1/solr-7.3.1.zip
下载后解压到一个位置,我这里是G:\solr-7.3.1,下文用${solr_home}表示solr所在的路径
然后用cmd进入到${solr_home}\bin目录,然后执行,启动solr
solr start
此时进入http://localhost:8983/solr/#/ 进入到solr的首页
下面要去创建solr的core,因为这里是单机,所以只创建一个core
上面为默认信息,此时点击确定后,发现会提示失败
Error CREATEing SolrCore 'new_core': Unable to create core [new_core] Caused by: Can't find resource 'solrconfig.xml' in classpath or 'G:\solr-7.3.1\server\solr\new_core'
solr stop -all
solr start
然后重新添加一下core,发现core添加成功了
此时去看log面板,发现有警告
我们再到${solr_home}\server\solr\new_core下新建一个conf文件夹。
此时再次重启solr后,就没有警告了。
下面我们导入mysql数据:
新建一个表
CREATE TABLE `people` (
`id` int NOT NULL ,
`name` varchar(255) NULL ,
`telephone` int NULL ,
`sex` varchar(255) NULL ,
`address` varchar(255) NULL ,
PRIMARY KEY (`id`)
);
1、jar包放入web项目:把自己以前用过的mysql-connector-java-5.1.6.jar(没有的话自行上网搜)和${solr_home}\dist下面的solr-dataimporthandler-7.3.1.jar放入到${solr_home}\server\solr-webapp\webapp\WEB-INF\lib目录下
2、然后往${solr_home}\server\solr\new_core\solrconfig.xml的<config></config>标签里添加下面内容
<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 并写入下面内容,这里column是指数据库中的列明,name是指solr中显示的名称
<dataConfig>
<dataSource name="source1" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.199.156:3306/test" user="root" password="root"/>
<document>
<entity name="people" query="select * from people" dataSource="source1" >
<field column="id" name="id" />
<field column="name" name="name" />
<field column="telephone" name="telephone" />
<field column="telephone" name="telephone" />
<field column="address" name="address" />
</entity>
</document>
</dataConfig>
然后去修改${solr_home}\server\solr\new_core\manager-schema.xml文件,在<schema></schema>标签中加入作为solr索引的字段,这里不配的话,会导致后面导数据的时候不成功。加入字段。
这里要注意!!!原始的manager-schema.xml文件里面就已经有队id列的定义,所以此时不用自己手动再加。
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
只需要加下面的内容
<field name="name" type="string" indexed="true" stored="true" />
<field name="telephone" type="string" indexed="true" stored="true" />
<field name="sex" type="string" indexed="true" stored="true" />
<field name="address" type="string" indexed="true" stored="true" />
然后重启solr,发现进到Dataimport里面能够正常显示
此时往数据库加点数据,内容如下:
然后回到solr,到Dataimport点击Execute和Refresh Status按钮,可以看到
这个时候我们到Query栏点击查询按钮,可以看到数据能够搜索出来了
用json格式查询指定位置,可以查到指定的内容的实体
但是当前的搜索功能只支持精确查找,要是想通过模糊查询的话,还得用上solr的分词器。
=====================================
在log面板发现下面的内容
那我们就到${solr_home}\server\solr\new_core\conf下面建立一个dataimport.properties文件就好了