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.将字符转成大 ...
随机推荐
- vue路由跳转的三种方式
目录 1.router-link [实现跳转最简单的方法] 2.this.$router.push({ path:'/user'}) 3.this.$router.replace{path:'/' } ...
- 对于Docker和Podman的一点使用经验
前言:本文会以多个实际的线上例子,分享自己对于Docker和Podman的一点使用经验及踩过的坑,希望对读者有一点帮助. 本文bash脚本初步加工后可直接使用(兼容mac和linux系统),对于关键点 ...
- 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 ...
- AnaTraf 网络万用表流量分析教程系列 | AnaTraf 网络万用表 B 站频道
为了更好的向大家分享如何使用 AnaTraf 网络万用表进行网络流量分析.网络故障排除,AnaTraf 开通了 B 站频道. 在 B 站上,将以视频的形式向大家介绍如何使用 AnaTraf 网络万用表 ...
- Delaunay三角剖分实现
参考文章:https://www.cnblogs.com/zhiyishou/p/4430017.html 本文使用逐点插入法进行剖分,并使用Unity3D实现. 通过阅读文章<Triangul ...
- Django信号与扩展:深入理解与实践
title: Django信号与扩展:深入理解与实践 date: 2024/5/15 22:40:52 updated: 2024/5/15 22:40:52 categories: 后端开发 tag ...
- 生物医学顶刊论文(JBHI-2024):TransFOL:药物相互作用中复杂关系推理的逻辑查询模型
(2024.5.17)JBHI-TransFOL:药物相互作用中复杂关系推理的逻辑查询模型 论文题目:TransFOL: A Logical Query Model for Complex Relat ...
- [第一届长城杯]-ez-python
----这道题似曾相识,和某刃的题目不能说不同,简直就一摸一样 ----考点:pickle序列化问题,命令执行 ----正常访问网站,源代码F12给出?pic=的提示,这种大致一看就是可以任意文件访问 ...
- 【C# wpf】个人网盘练习项目总结
采用 .net frameowrok 4.5.2 未写持久层代码,不可保存运行时的数据状态.分服务端,客户端,采用tcp通讯,使用了supersocket组件.服务端用winform ,客户端用wpf ...
- 用tkinter编写一个简单的登录注册界面
代码: from tkinter import * window = Tk() window.geometry('400x300+500+150') window.title('xxx系统') Can ...