安装Solr
- 下载solr的官方jar包 Solr官方下载地址
- 本人采用的 solr-7.7.2-src.tgz 安装包来进行搭建
- 下载本地解压
创建core工作区间
- 可以理解为Mysql的database,一个本地的localhost下可以有多个database
- 拷贝目录并修改为自定义的core, 拷贝server/solr/configsets/_default文件夹 至 server/solr 下面并自定义名称为post
- 首次拷贝只有conf 文件夹,我们来看一下里面的结构
- 这两个是核心配置文件,如果没有那就自行创建同名的xml文件
- 注意Solr 5.X版本以下 并不叫managed-schema.xml 而叫 schema.xml文件
安装IK分词器
- 下载IK分词器的jar包 IK分词器依赖 对应Solr版本号去下载对应的IK分词器
- 下载之后放到 solr-7.7.2/server/solr-webapp/webapp/WEB-INF/lib 文件夹下
- 配置 managed-schema.xml 添加如下代码至任意位置来开启使用IK分词器分词
- 安装完成,一会会在Solr客户端来测试 是否安装成功…
配置同步Mysql的配置
创建/修改data-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://127.0.0.1:3306/nsi_database?useSSL=false&serverTimezone=UTC&tinyInt1isBit=false"
user="root"
password="123456"/>
<document>
<entity name="nsi_post_category_item" query="SELECT * FROM `nsi_post_category_item` WHERE is_check = 1">
<field column="item_id" name="itemId"/>
<field column="title" name="title"/>
<field column="summary_desc" name="summaryDesc"/>
<field column="content" name="content"/>
<field column="post_type" name="postType"/>
<field column="post_icon" name="postIcon"/>
<field column="comment_num" name="commentNum"/>
<field column="share_num" name="shareNum"/>
<field column="watch_num" name="watchNum"/>
<field column="collect_num" name="collectNum"/>
<field column="tag" name="tag"/>
<field column="open_id" name="openId"/>
<field column="avatar" name="avatar"/>
<field column="nick_name" name="nickName"/>
<field column="is_check" name="isCheck"/>
</entity>
</document>
</dataConfig>
- dataSouce标签就不叙述了,写过JDBC的都知道是什么意思
- entity name:可以是任意名称也可以是实体类
query:就是你要查询的sql语句 - field column:就是这个表里面的字段,一定要对应否则指定不上
name:别名,是为了给Solr做索引和分词用的,但一定要对应managed-schema.xml 里面的name 否则便会创建索引和分词失败
配置managed-schema.xml
<field name="itemId" type="pint" indexed="true" stored="true"/>
<field name="title" type="text_ik" indexed="true" stored="true"/>
<field name="summaryDesc" type="text_ik" indexed="true" stored="true"/>
<field name="content" type="text_ik" indexed="true" stored="true"/>
<field name="postType" type="text_ik" indexed="true" stored="true"/>
<field name="postIcon" type="string" indexed="false" stored="true"/>
<field name="commentNum" type="pint" indexed="false" stored="true"/>
<field name="shareNum" type="pint" indexed="false" stored="true"/>
<field name="watchNum" type="pint" indexed="true" stored="true"/>
<field name="collectNum" type="pint" indexed="false" stored="true"/>
<field name="tag" type="text_ik" indexed="true" stored="true"/>
<field name="openId" type="string" indexed="false" stored="true"/>
<field name="avatar" type="string" indexed="false" stored="true"/>
<field name="nickName" type="string" indexed="false" stored="true"/>
<field name="isCheck" type="pint" indexed="false" stored="true"/>
<field name="id" type="string" multiValued="false" indexed="true" required="true" stored="true"/>
- 添加至任意位置即可,上一个配置文件的name 对应 这个配置文件的name
- type:声明该字段类型(Solr有 pint,plong,string,text_*)等等很多类型,只列举最常用的,也可以指定分词器的类型
- indexed:是否创建索引 true/false
- stored:是否在索引库中显示 true/false
- id: 如果你的数据表有这个字段你可以代替Solr的id,否则solr会自动生成一个uuid的字符串存入这个id
启动Solr
- 进入solr-7.7.2/bin 文件夹下 进入dos命令行
- solr start 启动solr
- solr stop -all 关闭solr (还有很多命令,自行百度)
- 看到这个提示便是启动成功
- 访问localhost:8983 即可进入Solr界面
添加core的配置
- 首次进入需要指定core的工作区间即刚才所修改的配置文件
- name:一般是跟core的文件夹名相一致
- instanceDIr:core的文件路径自行拷贝
- dataDir:在post文件夹下创建data文件夹并把路径指定上
- config:在你core/conf/solrconfig.xml 文件路径
- schema:在你core/conf/managed-schema.xml 文件路径
- 添加完以上路径 直接Add Core 即可
同步Mysql数据至Solr索引库
检测IK分词器安装
- 找到刚才定义的core
- 测试IK分词器是否安装成功
- 如果能找到代表IK分词器安装成功
- 随便输入一句话能看到IK分词器给我们将这一句话进行分词,以后用这些词或字便能进行检索
同步数据
- 打开dataImport 标签
- 看到右侧Configuration配置就是我们的 data-config.xml里面的配置
- Excute 点击导入 Refresh 是刷新
- 导入成功
- 看一下索引库是否有数据
- 进入左侧Query面板
- Solr的查询语句可以自行百度
- numFound是总条数,里面的参数项是我自定义的别名
手写不易,但能帮君,请赏个赞!!!
如需转载请写明出处,送人玫瑰,手留余香