zoukankan      html  css  js  c++  java
  • 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/>
    
  • 相关阅读:
    bat 设置 IP, 清除IP
    Java Web 过滤器的典型应用
    Servlet 生命周期
    Java 的四类八种基本类型
    MVC框架实现登陆功能
    Android开发入门(2)创建Android项目
    Android开发入门(1)Android系统简介
    算法导论——排序复习
    eclipse添加maven
    centos编译openjdk
  • 原文地址:https://www.cnblogs.com/faramita/p/11306016.html
Copyright © 2011-2022 走看看