solr

安装

创建一个名为 /usr/local/docker/solr/ikanalyzer 目录

  • /usr/local/docker/solr:用于存放 docker-compose.yml 配置文件
  • /usr/local/docker/solr/ikanalyzer:用于存放 Dockerfile 镜像配置文件

docker-compose.yml

version: '3.1'
services:
  solr:
    build: ikanalyzer
    restart: always
    container_name: solr
    ports:
      - 8983:8983
    volumes:
      - ./solrdata:/opt/solrdata

Dockerfile

FROM solr
MAINTAINER Lusifer <topsale@vip.qq.com>
# 创建 Core
WORKDIR /opt/solr/server/solr
RUN mkdir ik_core
WORKDIR /opt/solr/server/solr/ik_core
RUN echo 'name=ik_core' > core.properties
RUN mkdir data
RUN cp -r ../configsets/sample_techproducts_configs/conf/ .

# 安装中文分词
WORKDIR /opt/solr/server/solr-webapp/webapp/WEB-INF/lib
ADD ik-analyzer-solr5-5.x.jar .
ADD solr-analyzer-ik-5.1.0.jar .
WORKDIR /opt/solr/server/solr-webapp/webapp/WEB-INF
ADD ext.dic .
ADD stopword.dic .
ADD IKAnalyzer.cfg.xml .

# 增加分词配置
COPY managed-schema /opt/solr/server/solr/ik_core/conf

WORKDIR /opt/solr

相关文件放到ikanalyzer文件夹中

solr操作

修改 managed-schema 配置业务系统字段

由于 Solr 中自带 id 字段所以无需添加,其它字段需要手动添加 Solr 字段
# 字段域
<field name="tb_item_cid" type="plong" indexed="true" stored="true"/>
<field name="tb_item_cname"  type="text_ik" indexed="true" stored="true"/>
<field name="tb_item_title"  type="text_ik" indexed="true" stored="true"/>
<field name="tb_item_sell_point" type="text_ik" indexed="true" stored="true" />
<field name="tb_item_desc" type="text_ik" indexed="true" stored="true" />

# 复制域(Solr 的搜索优化功能,将多个字段域复制到一个域里,提高查询效率)
<field name="tb_item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
<copyField source="tb_item_cname" dest="tb_item_keywords"/>
<copyField source="tb_item_title" dest="tb_item_keywords"/>
<copyField source="tb_item_sell_point" dest="tb_item_keywords"/>
<copyField source="tb_item_desc" dest="tb_item_keywords"/>

复制配置到容器并重启

# 复制到容器
docker cp managed-schema solr:/opt/solr/server/solr/ik_core/conf

# 重启容器
docker-compose restart

分词效果图

添加

添加索引库

{
    "id": 536563,
    "tb_item_cid": 560,
    "tb_item_cname": "手机",
    "tb_item_title": "new2 - 阿尔卡特 (OT-927) 炭黑 联通3G手机 双卡双待",
    "tb_item_sell_point": "清仓!仅北京,武汉仓有货!"
}

效果

删除索引库

设置文档类型为 XML

方法1:根据 ID 删除

<delete>
    <id>536563</id>
</delete>
<commit />

方法2:根据查询删除

<delete>
    <query>*:*</query>
</delete>
<commit/>
原文地址:https://www.cnblogs.com/faramita/p/11306016.html