ES 实现数据库or查询效果

这篇具有很好参考价值的文章主要介绍了ES 实现数据库or查询效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ES :有两种常用查询  

        must   必须满足查询条件

        should 非必须满足查询条件

 如果想实现类似与mysql中的or 查询效果,必须使用should查询。但是shuold 会查询出不满足条件的数据 ,这必须加一个属性 "minimum_should_match": "1" 必须满足should条件中的一个查询条件 这样就能达到 or查询的结果了。

"minimum_should_match": "1" 这个属性不能乱用,如果没有should查询的条件不要加个这个属性

提供参考原生es查询条件:

{
	"from": 0,
	"size": 30,
	"query": {
		"bool": {
			"must": [
				{
					"query_string": {
						"query": "status:0",
						"fields": [],
						"type": "best_fields",
						"default_operator": "or",
						"max_determinized_states": 10000,
						"enable_position_increments": true,
						"fuzziness": "AUTO",
						"fuzzy_prefix_length": 0,
						"fuzzy_max_expansions": 50,
						"phrase_slop": 0,
						"analyze_wildcard": true,
						"escape": false,
						"auto_generate_synonyms_phrase_query": true,
						"fuzzy_transpositions": true,
						"boost": 1.0
					}
				},
				{
					"terms": {
						"saleableRange": [
							"0",
							"2"
						],
						"boost": 1.0
					}
				},
				{
					"query_string": {
						"query": "entity:Product",
						"fields": [],
						"type": "best_fields",
						"default_operator": "or",
						"max_determinized_states": 10000,
						"enable_position_increments": true,
						"fuzziness": "AUTO",
						"fuzzy_prefix_length": 0,
						"fuzzy_max_expansions": 50,
						"phrase_slop": 0,
						"escape": false,
						"auto_generate_synonyms_phrase_query": true,
						"fuzzy_transpositions": true,
						"boost": 1.0
					}
				}
			],
			"should": [
				{
					"query_string": {
						"query": "shortName.keyword:*1011838*",
						"fields": [],
						"type": "best_fields",
						"default_operator": "or",
						"max_determinized_states": 10000,
						"enable_position_increments": true,
						"fuzziness": "AUTO",
						"fuzzy_prefix_length": 0,
						"fuzzy_max_expansions": 50,
						"phrase_slop": 0,
						"analyze_wildcard": true,
						"escape": false,
						"auto_generate_synonyms_phrase_query": true,
						"fuzzy_transpositions": true,
						"boost": 1.0
					}
				},
				{
					"query_string": {
						"query": "code.keyword:*1011838*",
						"fields": [],
						"type": "best_fields",
						"default_operator": "or",
						"max_determinized_states": 10000,
						"enable_position_increments": true,
						"fuzziness": "AUTO",
						"fuzzy_prefix_length": 0,
						"fuzzy_max_expansions": 50,
						"phrase_slop": 0,
						"analyze_wildcard": true,
						"escape": false,
						"auto_generate_synonyms_phrase_query": true,
						"fuzzy_transpositions": true,
						"boost": 1.0
					}
				}
			],
			"adjust_pure_negative": true,
			"minimum_should_match": "1",
			"boost": 1.0
		}
	},
	"sort": [
		{
			"sortNum": {
				"order": "desc"
			}
		}
	]
}

这个查询满足的条件是 shortName的查询条件 或 code 查询条件的结果文章来源地址https://www.toymoban.com/news/detail-506558.html

到了这里,关于ES 实现数据库or查询效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 使用springboot实现查询更改数据库需求

    使用springboot实现简单的数据库数据交互请求 实现:通过springboot框架,实现接口 /user/view; 查询数据库user表中的user数据, /user/insert; 新增user数据到user表 /user/update 修改user的对应user信息 集成规范数据响应: 功能实现: 定义简单的user类并添加对应的user表,用于数据交互 创建数据访问

    2024年02月16日
    浏览(6)
  • 分布式数据库 Join 查询设计与实现浅析

    相对于单例数据库的查询操作,分布式数据查询会有很多技术难题。 本文记录 Mysql 分库分表 和 Elasticsearch Join 查询的实现思路,了解分布式场景数据处理的设计方案。 文章从常用的关系型数据库 MySQL 的分库分表Join 分析,再到非关系型 ElasticSearch 来分析 Join 实现策略。逐步

    2024年02月08日
    浏览(6)
  • 编写jsp页面实现对数据库表的查询

    编写jsp页面实现对数据库表的查询

    在本次作业中,我将eclipse与sql server连接起来,并在SSMS中进行插入数据,从而编写jsp页面实现对数据库表的查询。 一、连接数据库 按照(4条消息) eclipse连接SQL server数据库_eclipse如何连接数据库_shexianyu的博客-CSDN博客 教程中的步骤,最初只得到了加载驱动成功,连接数据库失

    2024年02月07日
    浏览(8)
  • QT实现连接MySQL数据库以及查询等操作

    QT实现连接MySQL数据库以及查询等操作

    功能包含数据库的增删改查和界面的显示,因为没有用.ui文件所以控件的位置都是手动设置的,写的有点费劲 首先打开Navicat,新建一个名字为bak_db的数据库,然后新建查询导入下面的sql语句: 然后刷新显示表已经创建好了,接下来就开始进行操作了: 文件结构 源码在我的

    2024年02月04日
    浏览(15)
  • JavaWeb04(登录&绑值&模糊查询&功能实现&连接数据库)

    JavaWeb04(登录&绑值&模糊查询&功能实现&连接数据库)

    目录 一.实现登录功能  2.2 制作简易验证码 2.3 完成登录验证 2.4 登录实现 ①连接字符串 private static final String URL=\\\"jdbc:oracle:thin:@localhost:1521:orcl\\\"; ②加载驱动  OracleDriver private static final String URL=\\\"jdbc:oracle:thin:@localhost:1521:orcl\\\";      二.实现表格版的绑定数据 2.1 效果预览 2.2 代

    2024年02月02日
    浏览(11)
  • 【手写数据库toadb】数据库planner的整体架构,以及逻辑查询树的设计与实现流程

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年02月05日
    浏览(13)
  • 【ES笔记02】ElasticSearch数据库之查询操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)

    【ES笔记02】ElasticSearch数据库之查询操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)

    这篇文章,主要介绍ElasticSearch数据库之查询操作(match、must、must_not、should、_source、filter、range、exists、ids、term、terms)。 目录 一、布尔查询 1.1、主键查询 1.2、两种查询方式 (1)路径参数查询 (2)请求体参数查询 1.3、match查询 (1)match (2)match_all 1.4、过滤字段 1.5、布

    2023年04月09日
    浏览(37)
  • 微信小程序 连接云数据库(不使用云函数)进行 登录、注册、查询(包括模糊查询)快速实现 亲测可用

    微信小程序 连接云数据库(不使用云函数)进行 登录、注册、查询(包括模糊查询)快速实现 亲测可用

    当连接MySQL的时候总是出现各种各样的小问题,可以选用微信小程序自带的云数据库 注:测试号不能建立云数据库 按图中步骤来 第4步中,有两种添加方式 第一种 第二种 注意: 如果你是粘贴复制的,他会报错 非数字字符\\\"无法使用外部字符串表示法位于第1行 。这时,在第

    2023年04月20日
    浏览(13)
  • SpringBoot+Vue入门并实现前后端分离和数据库查询(入门笔记超详细)

    SpringBoot+Vue入门并实现前后端分离和数据库查询(入门笔记超详细)

    初学SpringBoot,很多地方都不懂,所以完成这个走了不少弯路,连夜写blog记录,生怕天一亮全忘干净了…… 前端:Vue(2 or 3),IDE是 VS code 后端:Spring Boot,IDE是 IDEA 数据库: MySQL 目前实现功能 : 前后端代码分离,显示数据库表的数据 1.【创建vue项目】 终端输入 打开图形化

    2024年04月28日
    浏览(6)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包