带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(14)

本文涉及的产品
Elasticsearch Serverless通用抵扣包,测试体验金 200元
简介: 带你读《Elastic Stack 实战手册》之18:——3.4.2.3.Search通过Kibana(14)

《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(13) https://developer.aliyun.com/article/1231057


Multi-match

 

多字段匹配,可以在多个字段中匹配查询相关信息,通过 type 参数可以调整结果集


#查询商品名称和品牌名称中包含苹果的文档信息
POST /my_goods/_search
{
  "query": {
    "multi_match": {
      "query": "苹果",
      "type": "best_fields", 
      "fields": ["goodsName","brandName"],
      "tie_breaker": 0.3
    }
  }
}

type 参数类型详解:

 

l best_fields :默认,匹配 fields,将评分最高的分数做为整个查询的分数返回;


l most_fields:查询匹配的文档,并且返回各个字段的分数之和的平均值;

l cross_fields:跨字段匹配,匹配多个字段中是否包含查询词组,对每个字段分别进行打分,然后执行 max 运算获取打分最高的;

l phrase:以 match_phrase 方式运行查询,并返回最佳匹配的评分做为总评分;

l phrase_prefix:以 match_phrase_prefix 方式运行查询,并返回最佳匹配的评分做为总评分;

l bool_prefix:在每个字段上运行 match_bool_prefix 查询,并组合每个字段的评分,详情参考 bool_prefix 以 cross_fields 为例进行实战讲解。

 

#插入测试数据
PUT my_shop
{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "firstName":{
        "type":"text"
      },
      "lastName":{
        "type":"text"
      }
    }
  }
}
POST my_shop/_bulk
{"index":{"_id":1}}
{"first_name":"Will","last_name":"Smith","age":25}
{"index":{"_id":2}}
{"first_name":"Smith","last_name":"hello","age":21}
{"index":{"_id":3}}
{"first_name":"Will","last_name":"hello","age":20}
#查询姓名为 Will Smith 的信息
GET /my_shop/_search
{
  "query": {
    "multi_match" : {
      "query":      "Will Smith",
      "type":       "cross_fields",
      "fields":     [ "first_name^2", "last_name" ],
      "operator":   "and"
    }
  }
}
#返回
    "max_score" : 1.9208363,
    "hits" : [
      {
        "_index" : "my_shop",
        "_type" : "_doc",
        "_id" : "1",
        "_score" : 1.9208363,
        "_source" : {
          "first_name" : "Will",
          "last_name" : "Smith",
          "age" : 25
        }
      }
    ]

另外,first_name 提升了权重,默认为1。


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.3.Search通过Kibana(15) https://developer.aliyun.com/article/1231055

 

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
机器学习/深度学习 人工智能 监控
【AI 现况分析】AI大模型在财务规划和建议中的应用
【1月更文挑战第27天】【AI 现况分析】AI大模型在财务规划和建议中的应用
|
12月前
|
JavaScript 前端开发 Java
模板字符串和普通字符串的性能差异大吗?
总体而言,模板字符串和普通字符串的性能差异并非在所有场景下都非常显著,但在一些复杂的、对性能要求较高的场景中,模板字符串可能会展现出一定的优势。不过,在实际开发中,性能并非是选择使用哪种字符串的唯一考量因素,代码的可读性、可维护性以及开发效率等同样重要。
232 63
|
12月前
|
缓存 监控 负载均衡
CPU占用率爆表:高效诊断与解决策略
面对CPU占用率飙升至100%的情况,系统管理员和开发人员需要迅速采取行动以避免性能瓶颈和系统崩溃。本文将提供一系列诊断和解决CPU占用过高问题的实用方法。
1093 4
|
监控 调度
队列的深度解析:链式队列的实现
队列的深度解析:链式队列的实现
|
安全 网络安全 数据安全/隐私保护
|
JavaScript Java 测试技术
基于Java的网上订餐管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的网上订餐管理系统的设计与实现(源码+lw+部署文档+讲解等)
629 0
|
机器学习/深度学习 人工智能 自然语言处理
AI基础科普:揭开人工智能的神秘面纱
人工智能(Artificial Intelligence, AI)已经成为现代科技的热门话题,影响着我们的生活方方面面。从语音助手到自动驾驶汽车,AI正在以惊人的速度改变着世界。然而,对于许多人来说,AI仍然是一个模糊的概念。本文将通过通俗易懂的语言和丰富的图文,全面介绍AI的基础知识,帮助读者更好地理解这个激动人心的领域。
|
安全 网络协议 网络安全
在Windows7搭建FTP服务器详细教学
在Windows7搭建FTP服务器详细教学
1715 0
|
关系型数据库 MySQL PHP
Docker六脉神剑(二) 使用Docker构建lnmp开发环境
Docker六脉神剑(二) 使用Docker构建lnmp开发环境
281 0
|
SQL 存储 监控
使用CloudLens for SLS监控Project资源配额最佳实践
本文主要介绍如何使用CloudLens for SLS中全局错误日志、监控指标做Project 资源配额的水位监控 、超限监控 以及 如何提交资源配额提升申请。
79533 19
使用CloudLens for SLS监控Project资源配额最佳实践

热门文章

最新文章