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.将字符转成大 ...
随机推荐
- Data Lake_理解数据湖
Pentaho首席技术官James Dixon创造了"数据湖"一词.它把数据集市描述成一瓶水(清洗过的,包装过的和结构化易于使用的).而数据湖更像是在自然状态下的水,数据流从源系统 ...
- gorm 返回的 *DB 说明
RecordNotFound 跟在查询的后面(Find/First),bool true:没有查到记录 false:查到记录 Error 跟在修改(create/update)的后面,如果错误就会报错 ...
- Java 获取两个时间的时间差
前言 在平时的工作中,难免会遇到获取两个时间相差多少天.小时.分钟.秒.毫秒,现在我将自己获取的方法总结如下: 一.导入需要的依赖 <dependency> <groupId> ...
- postgresql性能优化2:sql语句和缓存配置
1.看执行计划 EXPLAIN, 此命令用于查看SQL的执行计划 总的来说sql的执行计划是一个树形层次结构, 一般来说阅读上遵从层级越深越优先, 同一层级由上到下的原则. 来跟着铁蛋老师读: 层级越 ...
- three.js 物体要使用光线投射技术,计算是否点击位置与物体有交叉
原生 DOM 还用原生的 DOM 点击事件,要注意开启 pointerEvents CSS3DRenderer 是一个新的渲染器,需要在渲染循环调用并适配 labelRenderer.domEleme ...
- vue3 如何在 jsx中使用 component 组件
component 组件不像其它的内置组件(tansition.transitionGroup),可以直接从 vue 中直接导出,所有要在 jsx 使用component就要使用 h 函数 使用 vu ...
- Vue cli之在组件中使用axios
默认情况下,我们的项目中并没有对axios包的支持,所以我们需要下载安装. 在项目根目录中使用 npm安装包: npm install axios 接着在main.js文件中,导入axios并把axi ...
- MyBatis完成CRUD 详细细节内容
1. MyBatis完成CRUD 详细细节内容 @ 目录 1. MyBatis完成CRUD 详细细节内容 每博一文案 2. MyBatis工具类SqlSessionUtil的封装 3. 准备工作 3. ...
- CSP-S2021 游记
那天是惊蛰 满天花瓣 就像现在 我看清了无池里的那个人 前言 终于是开了 游记 的坑(期盼已久!) 虽然参加过 CSP-J2019 ,CSP-S2020 以及 NOIP2020 ,但是都没有写过游记( ...
- css 跑马灯
html: <view class="in_scro"> <view class="in_scrview">恭喜139******1用户 ...