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不区分字母大小写搜索的更多相关文章

  1. MySQL中查询时对字母大小写的区分

    我相信很多人在mysql中查询时都遇到过mysql不区分字母大小写的情况:如以下例子: 1.SELECT * FROM `user` WHERE userpass = 'Z20'; 结果为: 2.SE ...

  2. [Go语言]从Docker源码学习Go——init()方法和identifier首字母大小写区分

    init()方法 如果想在一个go文件里,进行一些初始化的工作,可以把代码放到init()方法中. init()方法先被执行. func init() { // initialization of p ...

  3. ElasticSearch查询 第一篇:搜索API

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  4. AS3.0 字母大小写转换

    字母大小写转换: /** * * *-------------------------* * | *** 字母大小写转换 *** | * *-------------------------* * * ...

  5. vim编辑器的使用技巧——忽略字母大小写

    一忽略字母大小写临时生效 底行模式 底行模式下输入set  ic 注意ic是ignorecase的缩写 命令模式 命令模式进行关键字搜索 二忽略字母大小写永久生效 保存到配置文件里面,默认是没有此配置 ...

  6. js 处理字母 大小写的 一些函数

    js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现大小 ...

  7. 用CSS text-transform转换字母大小写

    以前我们都是用JS来实现字母的首字母大小写的,但现在没有必要了,CSS完全可以实现,话说兼容性还好从IE6开始就支持了. text-transform:none | capitalize | uppe ...

  8. 关于git不区分文件名大小写的处理

    今天遇到了git不区分文件名大小写的问题,一开始着实郁闷了一把. 处理办法: windows下在git中修改文件的大小写 git mv --force myfile MyFile 或者 git mv ...

  9. js中实现字母大小写转换

    js中实现字母大小写转换主要用到了四个js函数: 1.toLocaleUpperCase  2.toUpperCase3.toLocaleLowerCase4.toLowerCase 下面就这四个实现 ...

  10. php 字母大小写转换的函数

    分享下,在php编程中,将字母大小写进行转换的常用函数. 1.将字符串转换成小写strtolower(): 该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字符串 2.将字符转成大 ...

随机推荐

  1. vue路由跳转的三种方式

    目录 1.router-link [实现跳转最简单的方法] 2.this.$router.push({ path:'/user'}) 3.this.$router.replace{path:'/' } ...

  2. 对于Docker和Podman的一点使用经验

    前言:本文会以多个实际的线上例子,分享自己对于Docker和Podman的一点使用经验及踩过的坑,希望对读者有一点帮助. 本文bash脚本初步加工后可直接使用(兼容mac和linux系统),对于关键点 ...

  3. CentOS加载yum源时报错 [Errno 14] HTTP Error 404 - Not Found Trying other mirror.

    报错内容: [root@192 yum.repos.d]# yum repolist Loaded plugins: fastestmirror, product-id, search-disable ...

  4. AnaTraf 网络万用表流量分析教程系列 | AnaTraf 网络万用表 B 站频道

    为了更好的向大家分享如何使用 AnaTraf 网络万用表进行网络流量分析.网络故障排除,AnaTraf 开通了 B 站频道. 在 B 站上,将以视频的形式向大家介绍如何使用 AnaTraf 网络万用表 ...

  5. Delaunay三角剖分实现

    参考文章:https://www.cnblogs.com/zhiyishou/p/4430017.html 本文使用逐点插入法进行剖分,并使用Unity3D实现. 通过阅读文章<Triangul ...

  6. Django信号与扩展:深入理解与实践

    title: Django信号与扩展:深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tag ...

  7. 生物医学顶刊论文(JBHI-2024):TransFOL:药物相互作用中复杂关系推理的逻辑查询模型

    (2024.5.17)JBHI-TransFOL:药物相互作用中复杂关系推理的逻辑查询模型 论文题目:TransFOL: A Logical Query Model for Complex Relat ...

  8. [第一届长城杯]-ez-python

    ----这道题似曾相识,和某刃的题目不能说不同,简直就一摸一样 ----考点:pickle序列化问题,命令执行 ----正常访问网站,源代码F12给出?pic=的提示,这种大致一看就是可以任意文件访问 ...

  9. 【C# wpf】个人网盘练习项目总结

    采用 .net frameowrok 4.5.2 未写持久层代码,不可保存运行时的数据状态.分服务端,客户端,采用tcp通讯,使用了supersocket组件.服务端用winform ,客户端用wpf ...

  10. 用tkinter编写一个简单的登录注册界面

    代码: from tkinter import * window = Tk() window.geometry('400x300+500+150') window.title('xxx系统') Can ...