ElasticSearch 查询 match 无法精确查找 match用term代替

elasticsearch 使用分词之后match_phrase 字符串精确查找的坑 在使用ES对字符串进行精确查找时,通常将使用match_phrase查询,但当我们对查询的字段进行分词之后,直接使用match_phrase查询可能达不到预期的效果。如: 某个Index中存有如下内容 { "id": "1", "title": "努力改善农业生态环境" } 当我们需要在title字段中查询“农业生态”字段时,将查询不到任何记录 { "q... 阅读详情

本人做项目的时候出现的一个小问题,记录一下

ElasticSearch 查询 match和term的区别

有时候我们需要按条件精确查找,比如sql条件的ItemCode='ABC'

在ElasticSearch中如果使用match的话,会把ItemCode字段包含ABC的内容查出来,而我的需求是只想差等于ABC的内容,这时候我们就可以直接把match用term代替,完美解决了这个问题


{
  "query": {
    "bool": {
      "must": [
        { "term": { "PatientID": "1303954" } },
        { "term": { "TestItemCode.keyword": "ABC" } }
      ],
      "must_not": [
        { "match": { "SampleId": "" } }
      ]
    }
  },
  "size":10,
  "sort":[
    {"ResultTime":{"order":"desc"}}
   ]
}

Elasticsearch 中的 term、terms 和 match 查询 在 Elasticsearch 中,term、terms 和 match 查询是基础的搜索操作,它们分别适用于不同的场景。term 和 terms 用于精确匹配,而 match 用于全文搜索。了解它们的差异和适用情况对于构建有效的搜索查询至关重要。 阅读详情

相关推荐

ElasticSearch(五)常用查询关键字解读(match, term, range,terms)

本博文参考了官方文档: https://www.elastic.co/guide/cn/index.html 虽然 Elasticsearch 自带了很多的查询,但经常用到的也就那么几个。 1. match 查询 无论你在任何字段上进行的是全文搜索还是精确查询,match查询是你可用的标准查询。 如果你在一个全文字段上使用match查询,在执行查询前,它将用正确的分析器去分析查询字符串: { "match": { "tweet": "About Search" }} Java代码 ...

weixin_38399962的博客 6437

elasticsearch multi_match的一个小坑

博客原文 安利一篇我翻译的国外大牛的神经网络入门文章 最近在使用elasticsearch的multi_match搜索时候,使用下面的body对一个字段下的所有字段进行递归搜索,但是当这些子字段出现数值类型的时候,就会报异常了,具体讨论可以参考 https://github.com/elastic/elasticsearch/issues/3975 解决方法是加入lenient字段,参

Gary,Done的专栏 4923

ElasticSearch term和match查询机制解析和隐藏的查询问题

2. 关于默认分析使用term查询的问题 之前说过es的默认分析器会讲中文拆分成一个个的单个汉子,搜索条件“内科”会被分析为“内”和“科”,从而进行搜索。而对于搜索我们常用的match搜索类似于数据库的模糊查询,term搜索为精确查询。使用的时候会出现以下情况: 2.1 场景 默认不对索引下的字段进行mapping操作时,使用的是默认分析器,假设有如下数据内容: 内科 内一科 内...

Time_Travel的博客 4335

elasticSearch7版本文档中文属性模糊查询不准确

通过java模糊查询的api(QueryBuilders.fuzzyQuery)查询name为“已”的时候可以查询,查询为“已发布”的时候查询不出来。name":"catalog=Catalog(value=699015935012372480, displayName=/默认分组),3.1 给索引添加分词器(删除索引后,然后重新建立索引并设置分词器,如2中图所示)14:33:17)status:已发布”ps:索引中没设置分词器。ps:索引中设置分词器后。

qq_45087487的博客 2969

elasticsearh中查询类型,term、match、match_all、multi_match、range、bool、boosting等

elasticsearch查询类型

LeoHan 4679

【ElasticSearch(九)进阶】Term精确数值查询,match keyword精确文本查询

【ElasticSearch(九)进阶】Term精确数值查询,match keyword精确文本查询 一、Term精确数值查询 term查询,会返回那些 在提供的字段中包含确切信息 的文档内容。 查询text字段值,使用match。查询精确数值,使用term。 为什么避免使用term对text字段进行查询? 默认情况下,ES更改text字段的值作为词法分析的一部分。这会使查找text...

u012161251的博客 1512

ES大量数据条件检索准确性问题

ES的排序都是基于评分,而评分是基于当前分片的词频进行计算,每个分片节点的数据评分不一样;ES中基于分片的搜索方式,是分2个阶段进行的,即Query阶段和Fetch阶段。ES的搜索类型有2种;

Alecor的博客 1449

elasticsearch基本查询三(英文分词)match查询

本文全面解析Elasticsearch查询DSL的核心概念与实战应用,重点对比全文查询(match、match_phrase等)和精确查询(term、terms等)的关键差异。文章通过丰富示例演示了基础查询语法、跨字段搜索、短语匹配等技巧,深入剖析了相关性评分机制和查询性能优化策略,并提供布尔查询组合、范围过滤等复杂业务场景的解决方案。最后总结了5条最佳实践:优先使用filter上下文、合理选择查询类型、善用布尔查询、优化查询性能、掌握排查工具,帮助开发者构建高效的Elasticsearch搜索方案。

ywl470812087的博客 12万+

Elasticsearch实战(十)---Match及MatchPhrase提升召回率及精确度及重积分优化Rescore

Elasticsearch实战使用 Match及MatchPhrase提升召回率及精确度, rescore实现重积分优化

流浪的喵的博客 4315

el-table通过上下左右键移动光标

在Element Plus的el-table中包含el-input和el-select组件,要实现上下左右键控制光标位置,需要通过focus和blur跟踪判断当前是哪个el-input或el-select有焦点,当按键按下时,通过监听,计算下一个获取焦点元素的索引,通过focus方法将焦点切换至改元素。

秋思的博客 1350

船舶轨迹预测中的5个常见坑:基于LSTM单步预测的避坑实践

本文针对船舶轨迹预测中LSTM单步预测的常见问题,系统总结了五个典型陷阱及避坑实践。重点分析了如何正确处理AIS数据的非均匀采样与清洗、对航向角进行周期性编码、采用轨迹级归一化策略、缓解单步滚动预测的误差累积,并设计贴合业务的评估指标。这些实践能有效提升预测模型的准确性与实用性。

cnn8visionary的博客 632

ElasticSearch全文搜索引擎之term和match的区别

一、简介 在elasticsearch中,查询主要使用到两个:term和match,本篇文章将总结一下两者的区别。 term:代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词解析,直接对关键词进行查找; match:代表模糊匹配,搜索前会对搜索词进行分词解析,然后按分词匹配查找; 一般模糊查找的时候,多用match,而精确查找时可以使用term。 二、term精确匹配 term查询是直接通过倒排索引指定的词条进行查找的。 首先创建一个索引member,并插入几条测试数据,相关命

weixiaohuai的博客 1万+

手写Socket Web服务器:深入HTTP协议底层原理

HTTP协议是Web通信的基石,其本质是一套严格定义的文本格式与状态交互规范。理解它需回归传输层——TCP连接建立、请求响应格式(如状态行、头/体分隔符\r\n\r\n)、字符编码与字节长度一致性等核心原理。这些知识直接决定CORS拦截、中文乱码、Content-Length错误等高频问题的排查效率。在现代框架封装日益厚重的今天,亲手用Socket实现一个可被Chrome识别的极简Web服务器,成为掌握Web运行机制最有效的实践路径。本文即以DebugLZQ经典案例为蓝本,还原从URI解析、DNS查询、So

weixin_40192258的博客 534

【Elasticsearch】全文搜索与精确匹配:match与term查询

在使用Elasticsearch进行数据检索时,开发者常常会面临一个关键问题:如何选择合适的查询方式来满足不同的搜索需求?在众多查询类型中,match和term查询是最基础、最常用的两种,但它们的适用场景和行为机制却大相径庭。理解它们之间的区别,是掌握Elasticsearch高效检索能力的第一步。本文将深入探讨match与term查询的核心原理、使用场景、性能差异以及常见误区,帮助你根据实际需求做出正确的选择。

屿小夏.的知识博客 3222

34、实数域上高效负循环卷积算法解析

本文介绍了一种高效的实数域负循环卷积算法,通过引入离散傅里叶负循环变换(DFNT)避免传统方法的冗余,显著提升计算效率。文章详细分析了算法原理、误差传播机制,并推导出误差与方差界,提出无误差和基于3σ规则的参数设置方案。结合Cooley-Tukey与Gentleman-Sande FFT路径优化,实验验证了算法在不同精度和多项式长度下的性能优势与结果正确性,为密码学与信号处理等领域提供了高精度、高性能的卷积计算解决方案。

salt的博客 115

YOLOv12涨点改进 | Neck特征融合改进篇 | YOLOv12引 入 BiFPN双向特征金字塔网络,显著提升了多尺度特征融合效率,目标检测、图像分割、图像分类,助力高效涨点

本文提出了一种基于BiFPN特征融合模块优化的YOLOv12目标检测方法。BiFPN通过引入可学习的权重实现高效的多尺度特征融合,结合双向连接机制提升特征提取能力。实验表明,该方法在COCO数据集上实现了优异的检测性能。文章详细介绍了BiFPN模块的原理、核心代码实现,以及如何将其集成到YOLOv12框架中,包括模块添加、配置文件修改等具体步骤。这种改进方案具有参数少、计算量小等优势,为高效目标检测提供了一种新的技术路径。

Ai缝合怪、助力小伙伴高效发论文 391

Elasticsearch中 match、match_phrase、query_string和term的区别

(一)text字段和keyword字段的区别 以下给出一个例子: 首先建立一个索引和类型,引入一个keywork的字段: PUT my_index { "mappings": { "products": { "properties": { "name": { "type": "keyword" } } ...

Aquilian的专栏 1万+

Open3D 可视化(1)——简单可视化【2026最新版】

简单可视化,博客长期更新,本文最新更新时间为:2026年5月10日。

点云侠的博客 5685

es笔记三之term,match,match_phrase 等查询方法介绍

首先介绍一下在 es 里有两种存储字符串的字段类型,一个是 keyword,一个是 text。keyword 在存储数据的时候是作为一个整体存储的,不会对其进行分词处理text 存储数据的时候会对字符串进行分词处理,然后存储。而对于查询方法, term 是精确查询,match 是模糊查询。接下来我们用几个例子,来分别表达下这两种类型的字段,使用 term,match,match_phrase 等搜索的情况。

weixin_43354181的博客 9727

【常见开源库的二次开发】基于openssl的加密与解密——openssl认识与配置(一)

OpenSSL 是一个开源的软件库,它提供了一系列加密工具和协议,主要用于实现安全通信,如在网络上的数据传输。它支持多种加密算法,包括对称加密、非对称加密、散列函数、伪随机数生成器、数字签名、密钥交换以及证书管理等。

嵌入式技术开发 4161

Elasticsearch 查询之term,match,match_phrase

1. term查询是基于词项的查询,而且当设置为term查询时,es不会对这个词做任何处理,但是在文本进行分词时,通常都会将大写转为小写,这个时候就会出现查不出来的情况,比如: POST /test/_doc { "name":"Pantheon" } 这样创建出来的doc可以看到明显做了lowercase,因为用的standard分词器 GET /test/_analyze { "field": "name", "text": "Pantheon" } 所以当使用下面的语句去查

zhanggf的博客 2781

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

es的term 、terms 和 match、range 和缓存

es 的term 、terms 和 match、range 和缓存 本文是学习es的中文官网,自己的学习总结 整体数据插入及查询流程 数据存入 将新接收的数据存在buffer中,数据分词处理后,新建倒排索引 生成segment文件, (正常是在将数据写入磁盘时生成segment )但为了实时性, 把这个segment 刷到文件系统缓存中, 此时lucene可以检索这个新生成的segment, 为了保证数据的安全性(服务宕机丢失缓存数据), ES在在把数据写到内存buffer的时候同时还记录了一个trans

哎幽的成长 1万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ES中match和term差别对比

match在匹配时会对所查找的关键词进行分词,然后按分词匹配查找,而term会直接对关键词进行查找。一般模糊查找的时候,多用match,而精确查找时可以使用term。举个例子说明一下:{ "match": { "title": "my cat"} }{ "bool": { "should": [ { "term": { "tit

张胜楠的博客 4万+

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别

以上就是 Elasticsearch 查询时 term、match、match_phrase、match_phrase_prefix 的区别,大家根据具体适用的场景选择合适的查询语句哈。

csdn565973850的博客 1755

Elasticsearch中的Term查询和全文查询

Term 查询和全文(match,match_phrase)查询有什么区别

zwx900102的博客 4474
上一篇: ElasticSearch 深度分页解决方案
下一篇: windows下安装MITIE
nb009网
博客等级 码龄18年 10粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值