当前位置: 首页 > news >正文

09-结构化搜索、搜索的相关性算分

  • term 查询执行精确值匹配,要求文档中的字段值与指定的词项完全相等。对于日期字段等精确值字段,通常使用 term 查询可以快速有效地匹配文档。
  • match 查询执行全文搜索,会对输入的文本进行分析,生成查询词项,并试图找到与这些词项匹配的文档
  • constant_score查询是一种特殊的查询,它会为每个匹配的文档分配一个固定的分数(默认为 1.0)

DELETE productsPOST /products/_bulk
{ "index": { "_id": 1 }}
{ "price" : 10,"avaliable":true,"date":"2023-01-01", "productID" : "XHDK-A-1293-#fJ3" }
{ "index": { "_id": 2 }}
{ "price" : 20,"avaliable":true,"date":"2023-01-01", "productID" : "KDKE-B-9947-#kL5" }
{ "index": { "_id": 3 }}
{ "price" : 30,"avaliable":true, "productID" : "JODL-X-1937-#pV7" }
{ "index": { "_id": 4 }}
{ "price" : 30,"avaliable":false, "productID" : "QQPX-R-3956-#aD8" }GET products/_mapping# 对布尔值 match 查询,有算分
POST products/_search
{"profile": "true","explain": true,"query": {"term": {"avaliable": true}}
}# 对布尔值,通过constant score 转成 filtering,没有算分
POST products/_search
{"profile": "true","explain": true,"query": {"constant_score": {"filter": {"term": {"avaliable": true}}}}
}# 数字类型 Term
POST products/_search
{"profile": "true","explain": true,"query": {"term": {"price": 30}}
}# 数字类型 terms
POST products/_search
{"query": {"constant_score": {"filter": {"terms": {"price": ["20","30"]}}}}
}# 数字 Range 查询
GET products/_search
{"query" : {"constant_score" : {"filter" : {"range" : {"price" : {"gte" : 20,"lte"  : 30}}}}}
}# 日期 range
POST products/_search
{"query" : {"constant_score" : {"filter" : {"range" : {"date" : {"gte" : "now-1y"}}}}}
}# exists查询
POST products/_search
{"query": {"constant_score": {"filter": {"exists": {"field": "date"}}}}
}# 处理多值字段
POST /movies/_bulk
{ "index": { "_id": 1 }}
{ "title" : "Father of the Bridge Part II","year":1995, "genre":"Comedy"}
{ "index": { "_id": 2 }}
{ "title" : "Dave","year":1993,"genre":["Comedy","Romance"] }# 处理多值字段,term 查询是包含,而不是等于
POST movies/_search
{"query": {"constant_score": {"filter": {"term": {"genre.keyword": "Comedy"}}}}
}# 字符类型 terms
POST products/_search
{"query": {"constant_score": {"filter": {"terms": {"productID.keyword": ["QQPX-R-3956-#aD8","JODL-X-1937-#pV7"]}}}}
}POST products/_search
{"profile": "true","explain": true,"query": {"match": {"price": 30}}
}POST products/_search
{"profile": "true","explain": true,"query": {"term": {"date": "2019-01-01"}}
}POST products/_search
{"profile": "true","explain": true,"query": {"match": {"date": "2019-01-01"}}
}POST products/_search
{"profile": "true","explain": true,"query": {"constant_score": {"filter": {"term": {"productID.keyword": "XHDK-A-1293-#fJ3"}}}}
}POST products/_search
{"profile": "true","explain": true,"query": {"term": {"productID.keyword": "XHDK-A-1293-#fJ3"}}
}# 对布尔数值
POST products/_search
{"query": {"constant_score": {"filter": {"term": {"avaliable": "false"}}}}
}POST products/_search
{"query": {"term": {"avaliable": {"value": "false"}}}
}POST products/_search
{"profile": "true","explain": true,"query": {"term": {"price": {"value": "20"}}}
}POST products/_search
{"profile": "true","explain": true,"query": {"match": {"price": "20"}}
}POST products/_search
{"query": {"constant_score": {"filter": {"bool": {"must_not": {"exists": {"field": "date"}}}}}}
}DELETE products

# boosting 查询包含以下关键元素:

# positive: 正面条件,定义了一个条件(这里是 "content": "elasticsearch"), 当文档匹配这个条件时,会增加文档的相关性得分。

# negative: 负面条件,定义了另一个条件(这里是 "content": "like"), 当文档匹配这个条件时,会减少文档的相关性得分。

# negative_boost: 这个参数指定了负面条件对得分的影响程度。在这个示例中,


DELETE testscorePUT testscore
{"settings": {"number_of_shards": 1},"mappings": {"properties": {"content": {"type": "text"}}}
}PUT testscore/_bulk
{ "index": { "_id": 1 }}
{ "content":"we use Elasticsearch to power the search" }
{ "index": { "_id": 2 }}
{ "content":"we like elasticsearch" }
{ "index": { "_id": 3 }}
{ "content":"The scoring of documents is caculated by the scoring formula" }
{ "index": { "_id": 4 }}
{ "content":"you know, for search" }# the elasticsearch会查出123条数据
# the会查出13数据
POST /testscore/_search
{//"explain": true,"query": {"match": {//"content":"you""content": "elasticsearch"//"content":"the"//"content": "the elasticsearch"}}
}# boosting 查询包含以下关键元素:
# positive: 正面条件,定义了一个条件(这里是 "content": "elasticsearch"),
#           当文档匹配这个条件时,会增加文档的相关性得分。
# negative: 负面条件,定义了另一个条件(这里是 "content": "like"),
#           当文档匹配这个条件时,会减少文档的相关性得分。
# negative_boost: 这个参数指定了负面条件对得分的影响程度。在这个示例中,
#                 设置为 0.2,表示负面条件的匹配与正面条件相比,对相关性得分的影响降低了 80%。
POST testscore/_search
{"query": {"boosting" : {"positive" : {"term" : {"content" : "elasticsearch"}},"negative" : {"term" : {"content" : "like"}},"negative_boost" : 0.2}}
}DELETE testscorePOST tmdb/_search
{"_source": ["title","overview"],"query": {"more_like_this": {"fields": ["title^10","overview"],"like": [{"_id":"14191"}],"min_term_freq": 1,"max_query_terms": 12}}
}

相关文章:

09-结构化搜索、搜索的相关性算分

term 查询执行精确值匹配,要求文档中的字段值与指定的词项完全相等。对于日期字段等精确值字段,通常使用 term 查询可以快速有效地匹配文档。match 查询执行全文搜索,会对输入的文本进行分析,生成查询词项,并试图找到与…...

手机屏幕上进行OCR识别方案

在手机屏幕上进行OCR识别,可以通过一些主流方案实现高效、准确的文本识别。以下是几种常见方案: 1. 使用 Tesseract OCR 原理:Tesseract 是一个开源的 OCR 引擎,支持多种语言。可以通过一些优化提升其对手机屏幕文本的识别效果。…...

遗传算法与深度学习实战(22)——使用Numpy构建神经网络

遗传算法与深度学习实战(22)——使用Numpy构建神经网络 0. 前言1. 神经网络基础1.1 简单神经网络的架构1.2 神经网络的训练 2. 使用 Numpy 构建神经网络2.1 网络架构2.2 实现神经网络 小结系列链接 0. 前言 我们已经学习了如何使用进化算法来优化深度学…...

react->Antd->Table调整checkbox默认样式

checkbox默认不展示,hover此行时,出现checkbox,选中后不消失: hover前,设置透明边框; hover时,checkbox出现 选中后 代码块: .ant-checkbox {.ant-checkbox-inner {border: transparent;}}.ant…...

一种ESB的设计

系统架构 ESB包括: ESB总控服务、业务应用集群、业务消息WEB服务、业务消息日志服务、运维管理平台、业务设计器。如下图所示 ESB总控服务 ESB总控服务承载了各项业务的运维和管理。主要包括: 业务流程的管理ESB内部不同模块间的通讯ESB系统设置和管理…...

上位机常用通信方式

1. 串口通信:RS232(设备和PC之间,最常用,短距离)、RS485(工业现场总线,长距离,多点通信) 2. 以太网通信:TCP/IP协议 3. CAN总线通信 4. Modbus协议&#xff1…...

Vue3中使用LogicFlow实现简单流程图

实现结果 实现功能&#xff1a; 拖拽创建节点自定义节点/边自定义快捷键人员选择弹窗右侧动态配置组件配置项获取/回显必填项验证 自定义节点与拖拽创建节点 拖拽节点面板node-panel.vue <template><div class"node-panel"><divv-for"(item, k…...

《重学Java设计模式》之 工厂方法模式

《重学Java设计模式》之 建造者模式 《重学Java设计模式》之 原型模式 《重学Java设计模式》之 单例模式 模拟发奖多种商品 工程结构 奖品发放接口 package com.yys.mes.design.factory.store;public interface ICommodity {/*** Author Sherry* Date 14:20 2024/11/6**/voi…...

【大数据学习 | kafka】kafka的数据存储结构

以上是kafka的数据的存储方式。 这些数据可以在服务器集群上对应的文件夹中查看到。 [hexuanhadoop106 __consumer_offsets-0]$ ll 总用量 8 -rw-rw-r--. 1 hexuan hexuan 10485760 10月 28 22:21 00000000000000000000.index -rw-rw-r--. 1 hexuan hexuan 0 10月 28 …...

知识竞赛答题系统,线上答题小程序链接怎么做?

随着智能手机的普及&#xff0c;越来越多的单位开始在线上开展知识竞赛。这种形式的知识竞赛不仅易于操作&#xff0c;而且参与度更高。那么线上知识竞赛答题系统怎么做呢&#xff1f;自己可以做吗&#xff1f;答案是可以的&#xff01;借助微信答题系统制作平台风传吧&#xf…...

基于SSM的社区物业管理系统+LW参考示例

1.项目介绍 系统角色&#xff1a;管理员、业主&#xff08;普通用户&#xff09;功能模块&#xff1a;管理员&#xff08;用户管理、二手置换管理、报修管理、缴费管理、公告管理&#xff09;、普通用户&#xff08;登录注册、二手置换、生活缴费、信息采集、报事报修&#xf…...

android——jetpack startup初始化框架

一、jetpack startup Android Jetpack Startup是一个库&#xff0c;它简化了Android应用启动过程&#xff0c;尤其是对于那些需要处理复杂数据绑定和初始化逻辑的应用。它的核心在于提供了一个StartupComponent&#xff0c;用于声明应用的初始化逻辑&#xff0c;这个逻辑会在首…...

英伟达HOVER——用于人形机器人的多功能全身控制器:整合不同的控制模式且实现彼此之间的无缝切换

前言 前几天&#xff0c;一在长沙的朋友李总发我一个英伟达HOVER的视频(自从我今年年初以来持续不断的解读各大顶级实验室的最前沿paper、以及分享我司七月在具身领域的探索与落地后&#xff0c;影响力便越来越大了&#xff0c;不断加油 )&#xff0c;该视频说的有点玄乎&…...

GEE代码学习 day17

13.2 地球上到处都有许多图像吗&#xff1f; 我们可以使用下面的代码将这个 reducer count 应用于我们过滤后的 ImageCollection。我们将返回相同的数据集并筛选 2020 年&#xff0c;但没有地理限制。这将收集来自世界各地的图像&#xff0c;然后计算每个像素中的图像数量。以…...

论文阅读笔记-Covariate Shift: A Review and Analysis on Classifiers

前言 标题&#xff1a;Covariate Shift: A Review and Analysis on Classifiers 原文链接&#xff1a;Link\ 我们都知道在机器学习模型中&#xff0c;训练数据和测试数据是不同的阶段&#xff0c;并且&#xff0c;通常是是假定训练数据和测试数据点遵循相同的分布。但是实际上&…...

基于SSM+VUE守护萌宠宠物网站JAVA|VUE|Springboot计算机毕业设计源代码+数据库+LW文档+开题报告+答辩稿+部署教+代码讲解

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿 部署教程代码讲解代码时间修改教程 一、开发工具、运行环境、开发技术 开发工具 1、操作系统&#xff1a;Window操作系统 2、开发工具&#xff1a;IntelliJ IDEA或者Eclipse 3、数据库存储&#xff1a…...

【在Linux世界中追寻伟大的One Piece】Socket编程TCP

目录 1 -> TCP socket API 2 -> V1 -Echo Server 2.1 -> 测试多个连接的情况 1 -> TCP socket API socket()&#xff1a; socket()打开一个网络通讯端口&#xff0c;如果成功的话&#xff0c;就像open()一样返回一个文件描述符。应用程序可以像读写文件一样用r…...

进入半导体行业需要具备哪些能力?

要进入半导体公司&#xff0c;尤其是从事工艺流程设计和制程优化的岗位&#xff0c;需要具备一定的跨学科背景。 以某公司招聘要求为例&#xff1a; **公司 招聘岗位&#xff1a;工艺工程师 该公司是一家从事半导体设备、工艺与材料研发、生产和销售的公司&#xff0c;面向…...

Nature重磅:AI化学家再升级!大幅提升实验效率,推动化学合成进入“智能化”新阶段

人工智能&#xff08;AI&#xff09;驱动的机器人&#xff0c;正在我们的生活中扮演着越来越重要的角色&#xff0c;而在化学合成实验室内&#xff0c;它们也在悄然改变着传统实验方式。 如今&#xff0c;科学家们在智能化学领域取得了新突破—— 来自英国利物浦大学的研究团…...

源代码泄漏怎么办?SDC沙盒成为破局利器

在数字化时代&#xff0c;源代码安全已成为企业关注的焦点。源代码的泄露不仅可能导致知识产权的损失&#xff0c;还可能被竞争对手利用&#xff0c;给企业带来巨大的经济损失和法律风险。因此&#xff0c;采取有效的源代码防泄漏措施至关重要。深信达的SDC沙盒防泄密软件&…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

ardupilot 开发环境eclipse 中import 缺少C++

目录 文章目录 目录摘要1.修复过程摘要 本节主要解决ardupilot 开发环境eclipse 中import 缺少C++,无法导入ardupilot代码,会引起查看不方便的问题。如下图所示 1.修复过程 0.安装ubuntu 软件中自带的eclipse 1.打开eclipse—Help—install new software 2.在 Work with中…...

Caliper 配置文件解析:config.yaml

Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...

【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具

第2章 虚拟机性能监控&#xff0c;故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令&#xff1a;jps [options] [hostid] 功能&#xff1a;本地虚拟机进程显示进程ID&#xff08;与ps相同&#xff09;&#xff0c;可同时显示主类&#x…...

代理篇12|深入理解 Vite中的Proxy接口代理配置

在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...

重启Eureka集群中的节点,对已经注册的服务有什么影响

先看答案&#xff0c;如果正确地操作&#xff0c;重启Eureka集群中的节点&#xff0c;对已经注册的服务影响非常小&#xff0c;甚至可以做到无感知。 但如果操作不当&#xff0c;可能会引发短暂的服务发现问题。 下面我们从Eureka的核心工作原理来详细分析这个问题。 Eureka的…...

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数

高效线程安全的单例模式:Python 中的懒加载与自定义初始化参数 在软件开发中,单例模式(Singleton Pattern)是一种常见的设计模式,确保一个类仅有一个实例,并提供一个全局访问点。在多线程环境下,实现单例模式时需要注意线程安全问题,以防止多个线程同时创建实例,导致…...

代码随想录刷题day30

1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币&#xff0c;另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额&#xff0c;返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

macOS 终端智能代理检测

&#x1f9e0; 终端智能代理检测&#xff1a;自动判断是否需要设置代理访问 GitHub 在开发中&#xff0c;使用 GitHub 是非常常见的需求。但有时候我们会发现某些命令失败、插件无法更新&#xff0c;例如&#xff1a; fatal: unable to access https://github.com/ohmyzsh/oh…...