ElasticSearch 关于搜索,有哪些类型的搜索

在Elasticsearch中,根据不同的需求和场景,有多种类型的搜索可供使用。下面是几种常见的搜索类型及其应用场景:

1. 全文搜索 (Full-text Search)

  • 描述:全文搜索是最常用的搜索类型,它允许用户在文档中搜索特定的单词或短语。
  • 示例:使用match查询来执行全文搜索。
  • 示例代码
    GET /products/_search
    {"query": {"match": {"name": "wireless headphones"}}
    }
    

2. 模糊搜索 (Fuzzy Search)

  • 描述:模糊搜索允许用户输入与索引中的词汇单元有轻微差异的查询,如拼写错误。
  • 示例:使用fuzzy查询来执行模糊搜索。
  • 示例代码
    GET /products/_search
    {"query": {"fuzzy": {"name": {"value": "bluethoot","fuzziness": "2"}}}
    }
    

3. 前缀搜索 (Prefix Search)

  • 描述:前缀搜索用于查找以特定前缀开头的词汇单元。
  • 示例:使用prefix查询来执行前缀搜索。
  • 示例代码
    GET /products/_search
    {"query": {"prefix": {"name": "bluetooth"}}
    }
    

4. 词组搜索 (Phrase Search)

  • 描述:词组搜索用于查找确切的词组。
  • 示例:使用match_phrase查询来执行词组搜索。
  • 示例代码
    GET /products/_search
    {"query": {"match_phrase": {"description": "wireless headphones"}}
    }
    

5. 通配符搜索 (Wildcard Search)

  • 描述:通配符搜索允许使用通配符*?来匹配词汇单元。
  • 示例:使用wildcard查询来执行通配符搜索。
  • 示例代码
    GET /products/_search
    {"query": {"wildcard": {"name": "bluetooth*"}}
    }
    

6. 范围搜索 (Range Search)

  • 描述:范围搜索用于查找数值或日期字段在指定范围内的文档。
  • 示例:使用range查询来执行范围搜索。
  • 示例代码
    GET /products/_search
    {"query": {"range": {"price": {"gte": 100,"lte": 200}}}
    }
    

7. 多字段搜索 (Multi-field Search)

  • 描述:多字段搜索允许同时在多个字段中进行搜索。
  • 示例:使用multi_match查询来执行多字段搜索。
  • 示例代码
    GET /products/_search
    {"query": {"multi_match": {"query": "wireless headphones","fields": ["name", "description"]}}
    }
    

8. 布尔搜索 (Boolean Search)

  • 描述:布尔搜索允许组合多个查询条件,如must, should, must_not
  • 示例:使用bool查询来执行布尔搜索。
  • 示例代码
    GET /products/_search
    {"query": {"bool": {"must": [{ "match": { "name": "wireless" } },{ "match": { "category": "electronics" } }],"should": [{ "match": { "description": "long battery life" } }]}}
    }
    

9. 存在搜索 (Exists Search)

  • 描述:存在搜索用于查找具有特定字段的文档。
  • 示例:使用exists查询来执行存在搜索。
  • 示例代码
    GET /products/_search
    {"query": {"exists": {"field": "warranty_period"}}
    }
    

10. 排序搜索 (Sorting Search)

  • 描述:排序搜索允许根据特定字段对结果进行排序。
  • 示例:使用sort参数来执行排序搜索。
  • 示例代码
    GET /products/_search
    {"query": {"match_all": {}},"sort": [{ "price": { "order": "asc" } }]
    }
    

11. 聚合搜索 (Aggregation Search)

  • 描述:聚合搜索用于统计和汇总数据。
  • 示例:使用aggregations来执行聚合搜索。
  • 示例代码
    GET /products/_search
    {"aggs": {"categories": {"terms": {"field": "category.keyword"}}}
    }
    

总结

以上是Elasticsearch中的一些主要搜索类型。你可以根据你的需求选择合适的搜索类型来优化查询性能和满足特定的业务需求。如果你有具体的场景或问题需要讨论,请随时提问!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/51896.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

electron 主进程和渲染进程

最近在整理electron 相关的项目问题,对自己来说也是温故知新,也希望能对小伙伴们有所帮助,大家共同努力共同进步。加油!!!! 虽然最近一年前端大环境不好,但是大家还是要加油鸭&#…

网安零基础入门神书,全面介绍Web渗透核心攻击与防御方式!

Web安全是指Web服务程序的漏洞,通常涵盖Web漏洞、操作系统洞、数据库漏洞、中间件漏洞等。 “渗透测试”作为主动防御的一种关键手段,对评估网络系统安全防护及措施至关重要,因为只有发现问题才能及时终止并预防潜在的安全风险。 根据网络安…

【Qt开发】No matching signal for on_toolButton_clicked() 解决方案

【Qt开发】No matching signal for on_toolButton_clicked() 解决方案 文章目录 No matching signal for xxx 解决方案附录:C语言到C的入门知识点(主要适用于C语言精通到Qt的C开发入门)C语言与C的不同C中写C语言代码C语言到C的知识点Qt开发中…

Linux安装青龙面板并将本地服务映射至公网实现远程访问

文章目录 前言一、前期准备本教程环境为:Centos7,可以跑Docker的系统都可以使用。本教程使用Docker部署青龙,如何安装Docker详见: 二、安装青龙面板三、映射本地部署的青龙面板至公网四、使用固定公网地址访问本地部署的青龙面板 …

全局异常 @ControllerAdvice 该怎么写

本文首发于稀土掘金:全局异常 ControllerAdvice 该怎么写,该账号即为本人账号,非搬运。 问题由来 很多小伙伴刚进公司做项目的时候,会看到项目里面有一个ControllerAdvice标记的类,整个类的编码结构大概是这样子&…

程序员极力推荐的几款插件

前言 h之前分享程序员喜欢的神器之后,还是相当多的伙伴喜欢,那一期的工具不仅是协助你工作还是工作外摸鱼划水,体验感是相当不错的。 这一期我还是打算把我非常喜欢用的几款插件分享给大家,这几款差劲不仅帮助我节省很多时间&am…

2024年软件系统与信息处理国际会议(ICSSIP 2024)即将召开!

2024年软件系统与信息处理国际会议(ICSSIP 2024)将于2024年10月25-27日在中国昆明举行。引领技术前沿,共谋创新未来。ICSSIP 2024将汇聚来自世界各地的专家学者,他们将在会上分享最新的研究成果、技术突破及实践经验。会议议题涵盖…

WAAP替代传统WAF已成趋势

数字化时代,Web应用和API已成为企业运营的核心。然而,随着网络攻击手段的不断进化,自动化攻击愈发频繁,传统的Web应用防火墙(WAF)已难以满足现代企业的安全需求。WAAP(Web Application and API …

我出一道面试题,看看你能拿 3k 还是 30k!

大家好,我是程序员鱼皮。欢迎屏幕前的各位来到今天的模拟面试现场,接下来我会出一道经典的后端面试题,你只需要进行 4 个简单的选择,就能判断出来你的水平是新手(3k)、初级(10k)、中…

大镜山阿里巴巴国际站数据采集软件使用方法|阿里国际站商家信息采集软件使用方法|阿里国际站信息采集软件使用方法

大镜山阿里巴巴国际站数据采集软件一款采集阿里巴巴国际站alibaba.com商家数据的软件,采集的数据包括店铺名称、店铺年份、评分、邮件地址、手机号码、网址及社交连接等。 下载大镜山阿里巴巴国际站数据采集软件 大镜山阿里巴巴国际站数据采集软件下载地址 大镜山…

基于STM32设计的智能窗户控制系统(华为云IOT)(196)

文章目录 一、设计需求1.1 设计需求总结1.2 整体设计思路1.3 整体构架1.4 功能总结1.5 ESP8266模块配置1.6 上位机开发思路1.7 项目的意义1.8 供电方式1.9 参考文献1.10 整体框架1.11 设备原理图二、硬件选型2.1 ESP8266-串口WIFI2.2 STM32开发板2.3 USB下载线2.4 洞洞板2.5 雨…

掌握Linux:常用命令及实用技巧

掌握Linux:常用命令及实用技巧 Linux,一个强大而灵活的操作系统,它不仅驱动着全球大部分的服务器和超级计算机,也是许多开发者和极客的首选平台。然而,对于初学者来说,Linux的命令行界面可能显得有些陌生和…

ubuntu20.04.6 安装Skywalking 10.0.1

1.前置准备 1.1. **jdk17(Skywalking10 jdk22不兼容,用17版本即可)**安装: https://blog.csdn.net/CsethCRM/article/details/140768670 1.2. elasticsearch安装: https://blog.csdn.net/CsethCRM/article/details…

Java-21推崇的虚拟线程到底有好快?一起来看这个实验

我们一起来看下面这个场景:十万个待执行任务,每个任务休眠两秒 1. 采用java-21的虚拟线程池来实现 public static void main(String[] args) throws InterruptedException{ExecutorService VIRTUAL_THREAD_POOL Executors.newThreadPerTaskExecutor(Th…

深度学习环境坑。

前面装好了之后装pytorch之后老显示gpufalse。 https://www.jb51.net/article/247762.htm 原因就是清华源的坑。 安装的时候不要用conda, 用pip命令 我cuda12.6,4070s cudnn-windows-x86_64-8.9.7.29_cuda12-archive.zip cuda_12.5.1_555.85_windows.…

爬虫程序在采集亚马逊站点数据时如何绕过验证码限制?

引言 在电商数据分析中,爬虫技术的应用日益广泛。通过爬虫技术,我们可以高效地获取大量的电商平台数据,这些数据对于市场分析、竞争情报、价格监控等有着极其重要的意义。亚马逊作为全球最大的电商平台之一,是数据采集的重要目标…

pdf文件损坏打不开怎么修复?文档损坏原因和修复办法分享!

pdf是一种优点很多的软件,它在文件传输过程中格式不会乱掉,而且还可以加密,特别的方便。pdf这种文件格式,不仅能呈现文档,还可以呈现图像,工作中经常会用到。 不过,因为种种原因,有…

【iOS】——Block底层实现和捕获机制

Block的实质 Block的定义是带有自动变量的匿名函数,下面从源码的角度探究下Block究竟是什么 下面是一个Block的简单实现: int main(int argc, const char * argv[]) {autoreleasepool {// insert code here...void (^blk)(void) ^{printf("Bloc…

WordPress原创插件:搜索引擎抓取首图seo图片

WordPress原创插件:搜索引擎抓取首图seo图片 插件设置 插件将在网站头部添加适当的meta标签,以便百度等搜索引擎抓取指定的固定图像。 插件下载 https://download.csdn.net/download/huayula/89596527

Docker容器数据库启动,如何用别名JAR jdbc:postgresql://别名:5432/postgres

如果想了解为啥这样做得同学,请去看这个文章 Docker容器网络(七)_host.docker.internal-CSDN博客 因为docker0网络,需要用别名的话,还得在host文件加 dockerIp(172.0.0.2) 别名 怎么查, docker network …