首页 > 其他分享 >ElasticSearch不区分字母大小写搜索

ElasticSearch不区分字母大小写搜索

时间:2024-07-03 09:09:54浏览次数:21  
标签:127.0 9200 keyword filesearch 字母 0.1 大小写 ElasticSearch type

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 }

 

127.0.0.1:9200

标签:127.0,9200,keyword,filesearch,字母,0.1,大小写,ElasticSearch,type
From: https://www.cnblogs.com/wangsaisoon/p/18280922

相关文章

  • 请编写函数fun,该函数的功能是:统一一含字符串中单词的个数,作为函数值返回。一行字符串
    /请编写函数fun,该函数的功能是:统一一含字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格格开,一行的开始没有空格。/#include<stdio.h>#include<time.h>#include<stdlib.h>#defineN200intfun(char*buff)......
  • 按字母分类的 HTML5 实体名称 - A
    较老的浏览器可能不支持下表中的所有HTML5实体。Chrome和Opera的支持是很好的,而IE11+和Firefox35+支持所有实体。字符实体名称十六进制十进制ÁAacute000C1193áaacute000E1225ĂAbreve00102258ăabreve00103259∾ac0223E8766∿acd0223F8767∾̳acE0223E+00333......
  • Elasticsearch集群部署(上)
    目录前言一.环境准备二.实施部署三. 安装配置head监控插件(只在第一台es部署)四.Kibana部署(当前还是在第一台es部署)五. 安装配置Nginx反向代理六. Logstash部署与测试前言1.Elasticsearch:  是一个基于Lucene的搜索服务器。提供搜集、分析、存储数据三大......
  • 随机生成50个0-100之间的数字,生成对应个数的随机字母,再按数字大小从小到大排序最后写
    importjava.util.ArrayList;importjava.util.Collections;importjava.util.List;importjava.util.Random;importjava.io.FileNotFoundException;importjava.io.PrintStream;publicclassRandomNum{publicstaticvoidmain(String[]args)throwsFileNotF......
  • Elasticsearch架构基本原理
    Elasticsearch的架构原理可以详细分为以下几个方面进行介绍:一、Elasticsearch基本概念Elasticsearch(简称ES)是一个基于Lucene构建的开源、分布式、RESTful搜索和分析引擎。它支持全文搜索、结构化搜索、半结构化搜索、数据分析、地理位置和对象间关联关系搜索等功能。ES使用Ja......
  • Elasticsearch:Painless scripting 语言(二)
    这是继上一篇文章“Elasticsearch:Painlessscripting语言(一)”的续篇。使用field API访问文档中的字段警告:FieldAPI仍在开发中,应视为测试版功能。API可能会发生变化,此迭代可能不是最终状态。有关功能状态,请参阅#78920。使用field API访问文档字段:field('my_......
  • .Net Core8下Elasticsearch7.x+Nest升级到Elasticsearch8.x+Elastic.Clients.Elastics
    背景Elasticsearch升级到8.11了,对应的客户端插件也跟着升级,以为会兼容Nest的语法,发现自己TooYoungTooSimple!没办法,只能去官网找,结果官网只有最基本的增、删、改、查,只能继续查资料,发现网上资料很少,避免大家少走弯路,这里做个简单的分享。分享1.ElasticsearchClientvaresS......
  • elasticsearch 全文搜素 query_string 搭配其他条件
    elasticsearch全文搜素query_string搭配其他条件{"query":{"bool":{"must":[{"term":{"item_type":"question"......
  • 实战教你ElasticSearch-8.13集群搭建
    elasticsearch8.13集群部署elasticsearch8.13analysis-ikelastiknn环境准备(每台节点都需要修改)修改系统参数-----https://www.elastic.co/guide/en/elasticsearch/reference/current/system-config.html(官方推荐)#vim/etc/security/limits.conf新增内容如下:*har......
  • 【微服务】第24节:初识搜索引擎 ElasticSearch
    目录1.初识elasticsearch1.1.认识和安装1.1.1.安装elasticsearch1.1.2.安装Kibana1.2.倒排索引1.2.1.正向索引1.2.2.倒排索引1.2.3.正向和倒排1.3.基础概念1.3.1.文档和字段1.3.2.索引和映射1.3.3.mysql与elasticsearch1.4.IK分词器1.4.1.安装IK分词器1.4.2.使......