1. 🏆 全文检索

1.1. 版本约定

https://docs.spring.io/spring-data/elasticsearch/reference/elasticsearch/versions.html

1.2. 环境安装

采用docker环境配置

1.2.1. es7版本(springboot2)

安装Elasticsearch

docker run -e TZ=Asia/Shanghai -e ES_JAVA_OPTS="-Xms1g -Xmx1g" -d -p 9200:9200 -p 9300:9300  -e "discovery.type=single-node" --name es   \
--privileged=true elasticsearch:7.9.0

[!tip] 建议这里通过网络固定好 ip,具体参考 docker网络

安装IK分词器

进入Elasticsearch容器

elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.9.0/elasticsearch-analysis-ik-7.9.0.zip

[!tip] 这里可能由于网络原因,失败多重复执行几次,直到安装成功。 安装后需要重启es服务才生效

安装kibana

可视化管理es容器

docker run -d --name es-kibana -e “I18N_LOCALE=zh-CN” --link=es:elasticsearch -p 5601:5601 kibana:7.9.0

访问地址:http://ip:5601/app/dev_tools#/console

[!tip]请使用7.9.0版本,es版本不同差异比较大,版本不兼容会导致es功能无法正常使用;如果7.9.0版本不行,可以尝试使用7.17.23版本

1.2.2. es8版本(springboot3)

安装Elasticsearch版本

docker pull docker.1ms.run/elasticsearch:8.15.5

docker run -d \
  --name es8 \
  --privileged=true \
  -p 9200:9200 \
  -p 9300:9300 \
  -e TZ=Asia/Shanghai \
  -e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
  -e "discovery.type=single-node" \
  docker.1ms.run/elasticsearch:8.15.5

[!tip]请使用8.15.5版本,es版本不同差异比较大,版本不兼容会导致es功能无法正常使用;

安装IK分词器

进入Elasticsearch容器

elasticsearch-plugin install https://release.infinilabs.com/analysis-ik/stable/elasticsearch-analysis-ik-8.15.5.zip

[!tip] 这里可能由于网络原因,失败多重复执行几次,直到安装成功。 安装后需要重启es服务才生效

安全证书

由于es8默认开启了安全验证,配置安全证书参考es官方文档

本地测试功能可以先把安全关闭(下图的security相关改为false)后重启es服务,直接通过http://ip:9200 能看到es信息说明已关闭安全

Alt text

1.3. 开发配置

1.3.1. 依赖

依赖ms-elasticsearch的方式

方式1、将ms-elasticsearch打包成jar, 同步到本地的maven库;

<dependency>
<groupId>net.mingsoft</groupId>
<artifactId>ms-elasticsearch</artifactId>
</dependency>

方式2、直接将ms-elasticsearch源代码复制到项目中;

1.3.2. application.yml

必须先安装环境,ip根据实际情况编写

# es索引名称配置,多个项目使用同一es服务时,请区分设置各项目的索引名称
ms:
  elasticsearch:
      index-name: cms-gov 

# ES服务器链接
spring:
  elasticsearch:
    uris: [ localhost:9200 ]
  data:
    elasticsearch:
      repositories:
        enabled: true

1.4. es各搜索简介

1.4.1. 联想搜索:返回与输入结果相近的词条集合

前缀匹配联想

可实现类似百度搜索的提示词功能

Alt text

Alt text

关键字匹配

类似下图的效果,高亮且不局限于前缀匹配

Alt text

Alt text

[!tip]一般可以用在用户搜索输入的时候,类似百度的搜索框,自动补全用户可能想输入的词条或以下拉列表显示

1.4.2. 通用搜索、高亮搜索

正常搜索文章使用通用或高亮搜索,返回文章详细信息,两个接口之间没有本质区别;搜索时会自动检测是否有站群环境

高亮前缀如:"<span style='color=red'>",高亮后缀如:"</span>"

搜索功能基本相同,高亮搜索会额外聚合关键字文章在栏目下的数量,具体参考聚合结果

1.4.3. 热词搜索

返回词条搜索频率及词条,可指定范围时间内返回词条个数;热词会随用户搜索自动统计增长,不需要人为干预

Alt text

1.4.4. 聚合搜索

根据字段词条分组展示,以相同词条为一组展示同词条的个数和词条内容

如下图,统计各栏目下的文章数量

Alt text

Copyright © mingsoft.net 2012-2022 all right reserved,powered by Gitbook该文件修订时间: 2025-05-13 13:37:04

results matching ""

    No results matching ""

    results matching ""

      No results matching ""