热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Solr06-Solr配置IK分词器和业务域

目录1配置中文分词器1.1准备IK中文分词器1.2配置schema.xml文件1.2.1加入使用IK分词器的域类型1.

目录

  • 1 配置中文分词器
    • 1.1 准备IK中文分词器
    • 1.2 配置schema.xml文件
      • 1.2.1 加入使用IK分词器的域类型
      • 1.2.2 加入使用IK分词器的域
    • 1.3 重启Tomcat并测试
  • 2 配置业务域
    • 2.1 准备商品数据
    • 2.2 配置商品业务域
    • 2.3 配置schema.xml文件
    • 2.4 重新启动Tomcat并查看配置

1 配置中文分词器

1.1 准备IK中文分词器

  1. 复制IK解压目录中的jar包: IKAnalyzer2012FF_u1.jar. 可在 我的github 下载.

  2. 粘贴到tomcat/webapps/solr/WEB-INF/lib目录.

  3. 复制IK解压目录中的配置文件:
    图片

  4. 粘贴到tomcat/webapps/solr/WEB-INF/classes目录.

1.2 配置schema.xml文件

1.2.1 加入使用IK分词器的域类型



    

1.2.2 加入使用IK分词器的域


图片

1.3 重启Tomcat并测试

选择任意Core, 然后在菜单栏里选择[Analysis], 输入中文语句, 进行分词测试:
图片

2 配置业务域

需求引入: 假设现在要使用Solr完成电商网站商品数据的搜索, 需要将保存在关系数据库中的商品数据导入到Solr索引库中.

2.1 准备商品数据

DROP DATABASE IF EXISTS `solr`;
CREATE DATABASE `solr`;
USE `solr`;

SET FOREIGN_KEY_CHECKS=0;

DROP TABLE IF EXISTS `products`;
CREATE TABLE `products` (
    `pid` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品编号',
    `name` varchar(255) DEFAULT NULL COMMENT '商品名称',
    `catalog` int(11) DEFAULT NULL COMMENT '商品分类ID',
    `catalog_name` varchar(50) DEFAULT NULL COMMENT '商品分类名称',
    `price` double DEFAULT NULL COMMENT '价格',
    `number` int(11) DEFAULT NULL COMMENT '数量',
    `description` longtext COMMENT '商品描述',
    `picture` varchar(255) DEFAULT NULL COMMENT '图片名称',
    `release_time` datetime DEFAULT NULL COMMENT '上架时间',
    PRIMARY KEY (`pid`)
) ENGINE=InnoDB AUTO_INCREMENT=6126 DEFAULT CHARSET=utf8;

具体表数据可在 我的github 下载.

2.2 配置商品业务域

说明: 分析商品数据库表, 确定哪些字段需要在Solr中建立索引和存储.

字段: pid, name, catalog, catalog_name, price, description, picture

  • 商品Id(直接使用Solr的id域):
 
  • 商品名称(若要用于高亮显示, 必须设置stored="true"):
 
  • 商品分类id:
 
  • 商品分类名称(String类型, 表示整体匹配, 不作分词):
 
  • 商品价格:
 
  • 商品描述:
 
  • 商品图片:
 
  • 配置商品复制域(stored="true", 实际开发中multiValued="true"的field不需要存储, 这里存储便于观察效果):

 


2.3 配置schema.xml文件

注意: 这里id使用Solr默认的id域(一定要有主键, 没有则需要将默认的id域删除, 也可更改id生成策略. 尝试过未在库中设置主键而此文件中的id域未删除也未重写, 此时可以建立索引, 却无法检索到结果(⊙﹏⊙)):

图片

2.4 重新启动Tomcat并查看配置

选中任意一个core, 选择Analysis, 在Fieldname / FieldType处查看, 观察配置是否成功:
图片

版权声明

作者: ma_shoufeng(马瘦风)

出处: 博客园 马瘦风的博客

您的支持是对博主的极大鼓励, 感谢您的阅读.

本文版权归博主所有, 欢迎转载, 但未经博主同意必须保留此段声明, 且在文章页面明显位置给出原文链接, 否则博主保留追究法律责任的权利.


推荐阅读
author-avatar
qtl4431541
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有