ElasticSearch不区分字母大小写搜索
0、停止使用该索引的服务(避免新加了数据没备份)
1、备份filesearch索引(检查备份的索引和原索引数据条数是否一致)
1 POST http://127.0.0.1:9200/_reindex
2 {
3 "source":{
4 "index":"filesearch"
5 },
6 "dest":{
7 "index":"filesearch_bak"
8 }
9 }
2、删除filesearch索引
3、新建索引(不包括不区分大小写的字段fileName)
1 PUT http://127.0.0.1:9200/filesearch
2 {
3 "mappings": {
4 "properties": {
5 "extendName": {
6 "type": "text",
7 "fields": {
8 "keyword": {
9 "ignore_above": 256,
10 "type": "keyword"
11 }
12 }
13 },
14 "filePath": {
15 "type": "text",
16 "fields": {
17 "keyword": {
18 "ignore_above": 256,
19 "type": "keyword"
20 }
21 }
22 },
23 "fileId": {
24 "type": "text",
25 "fields": {
26 "keyword": {
27 "ignore_above": 256,
28 "type": "keyword"
29 }
30 }
31 },
32 "isDir": {
33 "type": "long"
34 }
35 }
36 }
37 }
4、关闭索引
1 POST http://127.0.0.1:9200/filesearch/_close
5、修改索引属性(添加不区分大小写的属性)
1 PUT http://127.0.0.1:9200/filesearch/_settings
2 {
3 "analysis": {
4 "normalizer": {
5 "lowercase_normalizer": {
6 "type": "custom",
7 "char_filter": [],
8 "filter": [
9 "lowercase"
10 ]
11 }
12 }
13 }
14 }
6、更新映射(添加不区分大小写的字段fileName)
1 PUT http://127.0.0.1:9200/filesearch/_mapping
2 {
3 "properties": {
4 "fileName": {
5 "type": "text",
6 "fields": {
7 "keyword": {
8 "normalizer": "lowercase_normalizer",
9 "ignore_above": 256,
10 "type": "keyword"
11 }
12 }
13 }
14 }
15 }
7、开启索引
1 POST http://127.0.0.1:9200/filesearch/_open
8、复制备份索引到新索引
1 POST http://127.0.0.1:9200/_reindex
2 {
3 "source":{
4 "index":"filesearch_bak"
5 },
6 "dest":{
7 "index":"filesearch"
8 }
9 }
9、启动使用该索引的服务
完成!
测试:
1、写入数据
1 PUT http://127.0.0.1:9200/ws_index/_create/1/
2 {
3 "fileId": "83f311d71e5d4d799e5b254cf9305b04",
4 "fileName": "0703WXb0839",
5 "filePath": "/我的文件/20240703/demo",
6 "extendName": "txt",
7 "isDir": 0
8 }
9
10 PUT http://127.0.0.1:9200/ws_index/_create/2/
11 {
12 "fileId": "83f311d71e5d4d799e5b254cf9305b04",
13 "fileName": "0703wxb0843",
14 "filePath": "/我的文件/20240703/demo",
15 "extendName": "txt",
16 "isDir": 0
17 }
2、查询(可以查到上面新增的两条数据)
1 POST http://127.0.0.1:9200/filesearch/_search
2 {
3 "from": 0,
4 "size": 200,
5 "query": {
6 "bool": {
7 "must": [
8 {
9 "bool": {
10 "should": [
11 {
12 "wildcard": {
13 "fileName.keyword": "*Wxb*"
14 }
15 }
16 ]
17 }
18 },
19 {
20 "bool": {
21 "should": [
22 {
23 "wildcard": {
24 "filePath.keyword": "/我的文件/20240703/demo*"
25 }
26 }
27 ]
28 }
29 }
30 ]
31 }
32 }
33 }
ElasticSearch不区分字母大小写搜索的更多相关文章
- MySQL中查询时对字母大小写的区分
我相信很多人在mysql中查询时都遇到过mysql不区分字母大小写的情况:如以下例子: 1.SELECT * FROM `user` WHERE userpass = 'Z20'; 结果为: 2.SE ...
- [Go语言]从Docker源码学习Go——init()方法和identifier首字母大小写区分
init()方法 如果想在一个go文件里,进行一些初始化的工作,可以把代码放到init()方法中. init()方法先被执行. func init() { // initialization of p ...
- ElasticSearch查询 第一篇:搜索API
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- AS3.0 字母大小写转换
字母大小写转换: /** * * *-------------------------* * | *** 字母大小写转换 *** | * *-------------------------* * * ...
- vim编辑器的使用技巧——忽略字母大小写
一忽略字母大小写临时生效 底行模式 底行模式下输入set ic 注意ic是ignorecase的缩写 命令模式 命令模式进行关键字搜索 二忽略字母大小写永久生效 保存到配置文件里面,默认是没有此配置 ...
- js 处理字母 大小写的 一些函数
js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现大小 ...
- 用CSS text-transform转换字母大小写
以前我们都是用JS来实现字母的首字母大小写的,但现在没有必要了,CSS完全可以实现,话说兼容性还好从IE6开始就支持了. text-transform:none | capitalize | uppe ...
- 关于git不区分文件名大小写的处理
今天遇到了git不区分文件名大小写的问题,一开始着实郁闷了一把. 处理办法: windows下在git中修改文件的大小写 git mv --force myfile MyFile 或者 git mv ...
- js中实现字母大小写转换
js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase 2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现 ...
- php 字母大小写转换的函数
分享下,在php编程中,将字母大小写进行转换的常用函数. 1.将字符串转换成小写strtolower(): 该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字符串 2.将字符转成大 ...
随机推荐
- 二:大数据架构回顾-Kappa架构
Kappa 架构是由 LinkedIn 的前首席工程师杰伊·克雷普斯(Jay Kreps)提出的一种架构思想.克雷普斯是几个著名开源项目(包括 Apache Kafka 和 Apache Samza ...
- 游戏陪玩公众号H5软件开发方案图文详解
用户需求 无论开发怎样的产品,都需要事先对整个市场行情和用户需求进行简单的了解.前面的一组数据已经简明扼要的摆明了现在陪玩市场的行情.而现如今,大多数游戏都需要组队进行,如英雄联盟.王者荣耀.绝地求生 ...
- gin-vue-admin开发教程 01安装与启用
目录 目标 视频教程地址: 环境要求 前端环境安装文档: 安装node npm cnpm yarn(选装) 后端环境安装文档: Golang1.14.2 环境的安装 goland的配置 gin-vue ...
- make编译报错:fatal error: filesystem: 没有那个文件或目录 #include <filesystem>
报错: fatal error: filesystem: 没有那个文件或目录 #include(filesystem) 解决方法一: 修改头文件 #include <experimental/f ...
- 2019年最新前端面试题,js程序设计题
都说机会是留给有准备的人的. 一年之计在于春,面对众多的前端技术,需要时刻充电自己. 我现在整理一些前端js面试程序题. 1.判断一个字符串中出现最多的字符,并计算出现的次数? 2.用css伪类实现下 ...
- 让智慧物联赋能高效生产, AIRIOT助力数字化油田转型升级
近年来,中国石油行业为了推进工业化和信息化深度融合,充分结合勘探开发.生产科研和经营管理的实际需求,积极通过信息化建设促进油田业务转型升级.在勘探开发与管理的领域中,油气生产物联网系统是一个极其重 ...
- .NET Framework 4.7.2下 Hangfire 的集成
参考资料: 开源的.NET定时任务组件Hangfire解析:https://www.cnblogs.com/pengze0902/p/6583119.html.Net Core 简单的Hangfire ...
- Fastapi获取其他第三方回调
flask.django获取第三方回调数据,可以用request.data直接获取全部参数.而很多同学不知道fastapi如何获取回调的全部参数,其实可以通过request.body(). 如: @p ...
- 使用SQL语句完成数据表的去重工作
引入问题 可能大家都遇到过这样一种情况,一张表存在若干行数据,只是主键值相同,但是其它字段都是相同的,这就是我们通常所说的数据库重复数据,那我们是如何将这些数据删除呢?现在我们就介绍一种方法来实现数据 ...
- go语言开发的内网穿透工具,frp.
转载自:https://www.appinn.com/frp/ 什么是 Frp? 内网穿透工具有很多,其中 Frp (Fast Reverse Proxy) 是比较流行的一款.FRP 是一个免费开源的 ...