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

简介: 带你读《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并实现搜索。  
相关文章
|
网络协议 算法 网络性能优化
TCP滑动窗口、流量控制及拥塞控制详解
TCP滑动窗口、流量控制及拥塞控制详解
|
人工智能 JSON Serverless
阿里云AI剧本生成与动画创作解决方案深度评测
阿里云AI剧本动画全链路解决方案基于函数计算FC、百炼大模型和ComfyUI技术架构,实现从剧本生成到动画渲染的自动化流程。方案在电商广告、知识科普等快速批产场景表现出色,大幅缩短创作时间(如30秒动画从9.5小时减至16.1分钟)。然而,在强剧情连续性和物理规则方面存在不足,建议结合人工审核优化。测试显示其商用级成熟度,推荐采用“AI初稿-人工润色”模式。
1379 138
阿里云AI剧本生成与动画创作解决方案深度评测
|
存储 前端开发 Java
springboot文件上传和下载接口的简单思路
本文介绍了在Spring Boot中实现文件上传和下载接口的简单思路。文件上传通过`MultipartFile`对象获取前端传递的文件并存储,返回对外访问路径;文件下载通过文件的uuid名称读取文件,并通过流的方式输出,实现文件下载功能。
springboot文件上传和下载接口的简单思路
|
人工智能 搜索推荐 数据可视化
鸿蒙应用实践:利用扣子API开发起床文案生成器
本文将使用扣子(coze)智能体API开发一个起床文案生成器,用于自己的鸿蒙应用中生成”千人千面“的起床文案。
1000 0
|
传感器 人工智能 数据可视化
点云配准新方案!SuperLine3D:激光雷达点云中的自监督线分割和描述子提取(ECCV2022)
电线杆和建筑物的轮廓是城市道路上随处可见的物体,可为计算机视觉提供可靠的提示。为了重复提取它们作为特征并在离散的LiDAR帧之间实现关联以进行点云匹配。本文提出了一个用于LiDAR点云中3D线的基于学习的特征分割和描述子模型。
点云配准新方案!SuperLine3D:激光雷达点云中的自监督线分割和描述子提取(ECCV2022)
|
机器学习/深度学习 网络架构
子网划分详解
子网划分详解
1685 0
|
存储 安全 Linux
Linux中断(tasklet,工作队列,内核线程的使用)
Linux中断(tasklet,工作队列,内核线程的使用)
533 0
|
安全 网络协议 网络安全
2021年中职“网络安全“江西省赛题—B-6:流量分析
2021年中职“网络安全“江西省赛题—B-6:流量分析
661 0
|
存储 负载均衡 API
微服务轮子项目(35) -FastDFS分布式文件系统
微服务轮子项目(35) -FastDFS分布式文件系统
552 0

热门文章

最新文章