4 Elasticsearch 篇之Search API 介绍

本文深入介绍了Elasticsearch的Search API,包括URI Search和Query DSL。重点讲解了Query String Syntax、布尔操作符、通配符查询以及各种查询类型,如match-query、range-query和复合查询。还探讨了相关性算分的TF/IDF和BM25模型,帮助理解搜索结果的排序原理。
摘要由CSDN通过智能技术生成

SearchAPI概览

实现对es中存储的数据进行查询分析, endpoint为_search ,如下所示:
在这里插入图片描述

  • 查询主要有两种形式
    • URI Search,操作简便,方便通过命令行测试
    • 仅包含部分查询语法
  • Request Body Search
    • es提供的完备查询语法Query DSL(Domain Specific Language)
      在这里插入图片描述

URISearch详解与演示

  • 通过url query参数来实现搜索,常用参数如下:
    • q指定查询的语句,语法为Query String Syntax
    • df q中不指定字段时默认查询的字段,如果不指定, es会查询所有字段
    • sort排序
    • timeout指定超时时间,默认不超时
    • from,size用于分页
      在这里插入图片描述

Query String Syntax

  • term与phrase
    • alfred way等效于alfred OR way
    • "alfred way"词语查询,要求先后顺序
  • 泛查询
    • alfred等效于在所有字段去匹配该term
  • 指定字段
    • name:alfred
  • Group分组设定,使用括号指定匹配的规则
    • (quick OR brown) AND fox
    • status:(active OR pending) title:(full text search)

测试:
在这里插入图片描述
在这里插入图片描述
查询所有字段里有alfred的
在这里插入图片描述
“progile”:true会显示详细查询语句
在这里插入图片描述
只针对username查询
在这里插入图片描述
username:alfred和way是or的关系所以会返回三条
在这里插入图片描述
只返回一条,词语查询
在这里插入图片描述
username是alfred或则way的,将词语和列表组合在一起使用。
在这里插入图片描述

布尔操作符

  • AND(&&), OR(||), NOT(!)
    • name:(tom NOT lee)
    • 注意大写,不能小写
  • ±分别对应must和must_not
    • name:(tom +lee -alfred)
    • name:((lee && !alfred) Il (tom && lee && !alfred))
    • +在url中会被解析为空格,要使用encode后的结果才可以,为%2B

以上中tom +lee -alfred一定包含lee一定不包含alfred 可以包含tom
username:alfred查询和way的范查询

username:alfred查询和way的范查询

+要换成%2B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值