目录结构如下:
6.5.1版本的solr已经集成有jetty服务器(在server目录下),所以可以直接启动solr应用。
1、java环境配置好(这里不再累赘)。
2、打开cmd,路径切换到bin目录下。运行“solr start”指令。启动服务成功。
http://localhost:8983/solr该路径可验证(“solr stop -all”为关闭服务指令)。
3、创建solr应用。指令:“solr create -c test”。
4、创建好的test应用,在目录server/solr下生成有test文件夹结构如下:
同时可以在管理后台看到test应用
5、配置分词器
将 solr-6.5.1serversolroneconf 目录下默认的配置文件 managed-schema 重命名为 schema.xml(有时不管用,不改命名直接修改配置文件managed-schema)
配置分词器,在配置文件(managed-schema)中加入如下配置:
<fieldType name="text_ik" class="solr.TextField">
<analyzer type="index" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
<analyzer type="query" class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
添加分词器所需的jar包,在test目录下创建 lib 目录,将用到的分词插件 ik-analyzer-solr5-5.x.jar 加到 lib 目录中,重启服务,在管理后台可看到该类型。可进入test项目的“Analysis”功能下测试分词器对语句的分解情况,如图:
说明分词器配置成功。
6、创建索引,即将从MySQL数据库中导入数据到 Solr 并建立索引。
要导入的数据库表结构:id,title,content
编辑 conf/solrconfig.xml 文件,加入类库和数据库配置:
<lib dir="${solr.install.dir:../../../..}/dist/" regex="solr-dataimporthandler-.*.jar" />
##################################################################
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-mysql-config.xml</str>
</lst>
</requestHandler>
--------------------------------------------------------------------------------------------
同时新建数据库连接配置文件 conf/db-mysql-config.xml ,内容如下:
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource
name="jdbc"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/solr"
user="root" password="root"/>
<document>
<entity name="my_news" pk="id"
query="select id,title,content from my_news">
<field column="id" name="id"/>
<field column="title" name="title"/>
<field column="content" name="content"/>
</entity>
</document>
</dataConfig>
将数据库连接组件 mysql-connector-java-5.1.39-bin.jar 放到 test/lib 目录下,重启服务。
接下来创建和我们数据库字段对应的 field:title 和 content,类型选为 text_ik(即是上面配置的中文分词器),配置如图所示:
执行全量导入数据,如图:
直接在“Query”下,可以搜索了。至此,基本的搜索引擎搭建完毕。