ElasticSearch如何不分词完全匹配搜索

2023-11-06

最近在做一个查询系统,用到了ES,版本是6.1。
场景:通过用户姓名搜索用户列表,名字必须完全匹配。如 输入 “贾跃” 不会检索出”贾跃亭“,输入 ”马云“ 不会检索出马云云。
6.0之前的操作:

    PUT /<index_name>/_mapping
    {
                <type_name>: {
                    properties: {
                        <column_name>: {type: string, index: not_analyzed}
                    }
                }
     }
6.0之后:
指定type为keyword就可以了
    PUT /<index_name>
        {
            analysis: {
                analyzer: {
                    default: {
                        type: keyword
                    }
                }
            }
        }

java代码

 if (!ElasticsearchUtils.isIndexExist(index)) {
            IndicesAdminClient indices = client.admin().indices();
            CreateIndexRequestBuilder createIndexRequestBuilder = indices.prepareCreate(index);
            createIndexRequestBuilder.setSettings(createSetting());
            // 执行创建index请求
            createIndexRequestBuilder.execute().actionGet();
            XContentBuilder mapping = null;
            PutMappingRequest mappingRequest=null;
            try {
                if (!CollectionUtils.isEmpty(fieldTypes) ) {
                    mapping = XContentFactory.jsonBuilder();
                    mapping.startObject().startObject("properties");
                    for (FieldTypeBean x:fieldTypes) {
                    //getField 拿到需要设置的字段名  getType 指定的类型keyword
                        mapping.startObject(x.getField()).field("type", x.getType()).endObject();
                    }
                    mapping.endObject().endObject();
                    mappingRequest.source(mapping);
                }
            } catch (IOException e) {
                e.printStackTrace();
                return "error";
            }
            indices.putMapping(mappingRequest).actionGet();
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ElasticSearch如何不分词完全匹配搜索 的相关文章

  • AWS Elasticsearch 和 CORS

    我正在试用 AWS Elasticsearch 服务 https aws amazon com elasticsearch service https aws amazon com elasticsearch service 设置非常简单
  • 未能向 master 发送加入请求

    我使用的是elasticsearch版本1 3 0 重启数据节点后 无法检测到主节点 我收到错误failed to send join request to master 在错误日志中 app101 dGRBqTFTQfae76IFCjsM
  • Elasticsearch 中的分析器有什么用?

    我在理解弹性搜索分析器时遇到一些问题 它的用途是什么以及如何使用它 From 本文 https www elastic co blog found text analysis part 1 有来自源文本的分词器和分词过滤器 我是否无法理解来
  • Elasticsearch批量设置_id

    当我使用 id 设置将文档添加到 elasticsearch 时 我得到 Field id is a metadata field and cannot be added inside a document Use the index AP
  • 向 ElasticSearch 术语聚合添加其他字段

    索引文档如下 id 1 title Blah platform id 84 url http facebook com title Facebook 我想要的是按平台计数和输出统计数据 为了计数 我可以使用术语聚合platform id作为
  • 在 ElasticSearch 7+ 中,如何搜索所有文本字段?

    我想在 Elasticsearch 7 3 中存储的文档中搜索单词 我希望在以前版本的 Elasticsearch 上运行的一个示例是 query bool must match all oliver must not should fro
  • 按字段关联 ELK 中的消息

    相关 在ELK中合并日志和查询 https stackoverflow com questions 28429607 combine logs and query in elk 我们正在设置 ELK 并希望在 Kibana 4 中创建可视化
  • 在elasticsearch结果中显示不匹配的单词

    我想显示返回文档的多单词查询不匹配哪些单词 是否有查询类型或参数来实现此目的 通常 此类不匹配的单词会以删除线字体显示给用户 我得到答案后的示例查询 POST posts search query bool should match nam
  • Logstash删除类型并保留_type

    我有一个logstash 客户端和服务器 客户端将带有logstash的udp输出的日志文件发送到服务器 服务器也运行logstash来获取这些日志 在服务器上 我有一个 json 过滤器 它会在实际日志的字段中提取 json 格式的消息
  • 如何在弹性搜索中生成多个布尔查询的查询

    我想使用 spring 框架在 elasticsearch 中动态生成多个布尔运算的查询 我在elasticsearch中的数据就像 masterID
  • 在 Elasticsearch 中对具有一个值的属性进行多个值查询

    我正在尝试在这个查询的基础上进行一些构建 我正在搜索的索引还有一个带有 id 的 实体 字段 因此 一些记录将具有 实体 16 实体 156 等 具体取决于实体的 ID 我需要以这样的方式扩展此查询 以便可以传递数组或某些值列表 例如 te
  • 如何将2个匹配查询加入到elasticsearch的查询中?

    我想查询以下数据user id is 1 and name is John 写一个常用的SQL很容易 select from t where user id 1 and name John 但对我来说进行elasticsearch的查询并不
  • 局部敏感哈希 - Elasticsearch

    有没有允许在 Elasticsearch 上使用 LSH 的插件 如果是的话 您能否指出该位置并告诉我如何使用它 谢谢 编辑 我发现ES使用了MinHash插件 我怎样才能用这个来比较文件呢 查找重复项的最佳设置是什么 有一个Elastic
  • 在 Elastic 搜索中加载示例数据集时出错

    您好 我正在尝试加载示例数据集参考弹性搜索文档 https www elastic co guide en elasticsearch reference current exploring your data html但是当我尝试运行指示
  • 将 ElasticSearch SearchResponse 对象转换为 JsonObject

    我想将elasticsearch搜索结果转换为Json对象 我还没有找到任何直接转换的正确方法 SearchResponse response client prepareSearch index setExplain true execu
  • 在弹性搜索中使用 GET/POST 时的不同结果

    我正在通过 Elastic Search Head 插件尝试弹性搜索 当我通过 POST 提交查询时 结果符合预期 但是 当我使用 GET 尝试相同的查询时 我总是会返回索引中的所有值 那么 如何通过 GET 将查询传递到弹性搜索服务器 以
  • ElasticSearch - 仅获取与搜索响应中所有顶级字段匹配的嵌套对象

    假设我有以下文档 id 1 name xyz users name abc surname def name xyz surname wef name defg surname pqr 我只想获取与搜索响应中的所有顶级字段匹配的嵌套对象 我
  • 弹性搜索文档计数

    我正在运行 2 2 版本的 Elastic 搜索 我已经创建了索引并加载了示例文档 我发现其中有些问题 当我给予 GET index type count 我得到了正确的答案 count 9998 shards total 5 succes
  • NEST 1.0:请参阅 Fiddler 上的请求

    我刚刚更新到 NEST 1 0 我在远程服务器 不是本地主机 上有 Elastic Search 通常我在使用 Fiddler 发送和接收请求时没有任何问题 更新后 bammm 没有检测到任何请求 但我的应用程序发出这些请求没有任何问题 你
  • Elasticsearch 在 Mac 上存储数据的位置

    类似的问题this one https stackoverflow com questions 24694201 where are data files of elasticsearch on a standard debian inst

随机推荐

  • 《MySQL实战45讲》读后感 21

    在上一篇文章中 我和你介绍了间隙锁和 next key lock 的概念 但是并没有说明加锁规则 间隙锁的概念理解起来确实有点儿难 尤其在配合上行锁以后 很容易在判断是否会出现锁等待的问题上犯错 所以今天 我们就先从这个加锁规则开始吧 首先
  • aspose java api_NetBeans中如何下载并使用Aspose Java API和示例

    为了提升文件格式应用程序界面 API 的用户体验 Java NetBeans是Java开发人员在管理Java项目 开发组件或应用程序时使用最多的集成开发环境之一 为了让他们在NetBeans项目中通过一个简单的点击就能下载和使用多个Aspo
  • NITIRE 2023官方的PSNR及SSIM计算代码

    NITIRE 2023官方的PSNR及SSIM计算代码 问题描述 做图像复原任务时 总避免不了计算PSNR和SSIM等图像质量评估指标 但是网上实在是太多计算这类指标的代码了 不同代码计算的结果还可能存在差异 有使用matlab计算SSIM
  • 提高C++性能的编程技术笔记:多线程内存池+测试代码

    为了使多个线程并发地分配和释放内存 必须在分配器方法中添加互斥锁 全局内存管理器 通过new 和delete 实现 是通用的 因此它的开销也非常大 因为单线程内存管理器要比多线程内存管理器快的多 所以如果要分配的大多数内存块限于单线程中使用
  • MySQL多表操作:建表与多表查询

    目录 多表间的建表原则 一对多 多对多 一对一 实例演示多表查询 数据准备 多表查询 笛卡尔积 内连接 隐式内连接 显式内连接 外连接 左外连接 右外连接 子查询 子查询的多种情况 多表间的建表原则 一对多 如分类与商品是一对多的关系 一个
  • 花了 44 大洋,我实现 Java 发送短信功能!

    本篇为从 0 到 1 的一个 用 Java 对接腾讯短信发送功能的一篇流程文章 而标题中的 44 大洋则是用来购买短信套餐 当然如果你是首次使用腾讯云平台则可以享受 免费使用 这一功能 我是老用户 那 废话不多说 我们往下看对接步骤 1 短
  • java设计模式之代理模式

    什么是代理模式 为什么要使用代理模式 代理模式属于结构型 通过目标对象类完成其实现 静态代理 静态代理要求目标对象和代理对象实现同一个业务接口 由目标类去创建和实现 代理类负责实现增强 静态代理的缺点 代理类和目标类实现了相同的接口 每个代
  • CUDA编程一天入门

    目录 0 环境准备 1 套路 2 并行执行内核设置 3 示例代码simpleTexture3D 4 参考链接 0 环境准备 1 套路 CUDA 编程模型是一个异构模型 其中同时使用 CPU 和 GPU 在 CUDA 中 主机是指 CPU 及
  • MySQL-删除命令的区别

    MySQL 删除命令的区别 一 drop命令 1 删除数据库 DROP DATABASE IF EXISTS 数据库名 例 drop database if exists aa 2 删除数据表 DROP TABLE IF EXISTS 表名
  • Ts中函数的使用

    函数 基本示例 和 JavaScript 一样 TypeScript 函数可以创建有名字的函数和匿名函数 命名函数 function add x y return x y 匿名函数 let myAdd function x y return
  • Qt基础:六、标准对话框

    1 颜色对话框 添加 include
  • 软件包没有可安装候选

    前文 新人一枚 通过资料以及他人的经验进行学习 学习了以下博主的文章 链接是 https blog csdn net metheir article details 85040796 写下自己的学习记录 有不对之处请指出 有侵权处请联系本人
  • 在Python中通过OpenCV自己训练分类器 进行特定物体实时识别

    在Python中通过OpenCV自己训练分类器进行特定物体实时识别 0 前言 OpenCV中提供了一些训练好的分类器供我们调用 从而实现物体识别和分类 如人脸检测 年龄和性别预测 猫脸检测 汽车 船 猫 狗 沙发等 物体识别等 本篇文章的目
  • OPC新标准

    今天收到 Automation World 的邮件 OPC基金会在11月16日投票通过增加一个新标准 OPC Express Interface Xi OPC Xi 基于微软的WCF 能使 Net客户端和已有的老式OPC客户端同时访问老式O
  • HashMap 和 Hashtable 的区别

    HashMap 和 Hashtable 的区别 线程是否安全 HashMap 是非线程安全的 HashTable 是线程安全的 因为 HashTable 内部的方法基本都经过synchronized 修饰 如果你要保证线程安全的话就使用 C
  • Python轻量级Web框架:Bottle库!

    Bottle是一个超轻量级的python库 说是库 其本身只由一个4000行左右的文件构成 并且不需要任何依赖 只靠python标准库即可运作 和它本身的轻便一样 Bottle库的使用也十分简单 相信在看到本文前 读者对python也已经有
  • RAM、ROM、内存、存储、外存、硬盘的理解

    内存在电脑中起着举足轻重的作用 内存一般采用半导体存储单元 包括随机存储器 RAM 只读存储器 ROM 以及高速缓存 CACHE 只不过因为RAM是其中最重要的存储器 所以通常所说的内存即指电脑系统中的RAM RAM 随机存取存储器 ran
  • 智能指针之unique_ptr

    unique ptr实现的是专属所有权语义 用于独占它所指向的资源对象的场合 某个时刻只能有一个unique ptr指向一个动态分配的资源对象 也就是这个资源不会被多个unique ptr对象同时占有 它所管理的资源只能在unique pt
  • 端口被占用解决

    1 查询端口 windows命令 在开始 运行 cmd 输入 netstat ano可以查看所有进程 查询占用了8080端口的进程 netstat ano findstr 8080 mac lsof i 80 查询80端口占用程序 2 杀死
  • ElasticSearch如何不分词完全匹配搜索

    最近在做一个查询系统 用到了ES 版本是6 1 场景 通过用户姓名搜索用户列表 名字必须完全匹配 如 输入 贾跃 不会检索出 贾跃亭 输入 马云 不会检索出马云云 6 0之前的操作 PUT