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

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

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


比较 match_phrase 与 match 区别

 

l match_phrase

l 将查询条件的中的信息看做一个整体,如下面的 “goods t” 必须 goods 在前 t 在后。

 

l match

l 将查询中的条件做分词处理后,再去做查询。

 

#查询不到任何数据,因为不存在'goods t'的词组
GET /my_goods/_search
{
  "query": {
    "match_phrase": {
      "goodsName": "goods t"
    }
  }
}
#能查询到数据,因为文档中包含goods和t的词组
GET /my_goods/_search
{
  "query": {
    "match": {
      "goodsName": "goods t"
    }
  }
}

在 match_phrase 中,可以通过 slop 来控制单词中间的间隔,默认为 0,下面举例说明


GET /my_goods/_search
{
  "query": {
    "match_phrase": {
      "goodsName": {
        "query": "apple test",
        "slop": 1
      }
    }
  }
}
#返回
{
  "took" : 10,
  "timed_out" : false,
  "_shards" : {
    "total" : 1,
    "successful" : 1,
    "skipped" : 0,
    "failed" : 0
  },
  "hits" : {
    "total" : {
      "value" : 1,
      "relation" : "eq"
    },
    "max_score" : 3.08089,
    "hits" : [
      {
        "_index" : "my_goods",
        "_type" : "_doc",
        "_id" : "21",
        "_score" : 3.08089,
        "_source" : {
          "goodsName" : "apple goods test",
          "skuCode" : "skuCode3",
          "brandName" : "美国苹果",
          "closeUserCode" : [
            "0"
          ],
          "channelType" : "cloudPlatform",
          "shopCode" : "sc00001",
          "publicPrice" : "8388.88",
          "groupPrice" : null,
          "boxPrice" : [
            {
              "boxType" : "box1",
              "boxUserCode" : [
                "htd003",
                "uc004"
              ],
              "boxPriceDetail" : 4388.88
            },
            {
              "boxType" : "box2",
              "boxUserCode" : [
                "uc005",
                "uc0010"
              ],
              "boxPriceDetail" : 5388.88
            }
          ],
          "boostValue" : 1.2
        }
      }
    ]
  }
}

可以看到,我们设置了 1 个词条,apple 与 test 之间间隔一个词条,故能查询到。

 

Match phrase prefix query

 

返回文档包含给定查询条件的文档,文档中必须包含给定条件的内容,且是按照 prefix 来进行匹配的,如 "apple goods test" ,商品名称包含 apple goods test 的数据将被查询到返回。

 

新增一条测试数据

 

POST my_goods/_bulk
{"index":{"_id":13}}
{"goodsName":"apple and goods product ","skuCode":"skuCode3","brandName":"美国苹果","closeUserCode":["0"],"channelType":"cloudPlatform","shopCode":"sc00001","publicPrice":"8388.88","groupPrice":null,"boxPrice":[{"boxType":"box1","boxUserCode":["htd003","uc004"],"boxPriceDetail":4388.88},{"boxType":"box2","boxUserCode":["uc005","uc0010"],"boxPriceDetail":5388.88}],"boostValue":1.2}
{"index":{"_id":21}}
{"goodsName":"apple goods test","skuCode":"skuCode3","brandName":"美国苹果","closeUserCode":["0"],"channelType":"cloudPlatform","shopCode":"sc00001","publicPrice":"8388.88","groupPrice":null,"boxPrice":[{"boxType":"box1","boxUserCode":["htd003","uc004"],"boxPriceDetail":4388.88},{"boxType":"box2","boxUserCode":["uc005","uc0010"],"boxPriceDetail":5388.88}],"boostValue":1.2}
#只返回goodsName : apple goods test的数据
GET /my_goods/_search
{
  "query": {
    "match_phrase_prefix": {
      "goodsName": "apple goods t"
    }
  }
}

总结比较 match 这四种查询

image.png


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



相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
25天前
|
前端开发 小程序 IDE
HBuilderX 4.75 安装教程:详细步骤+桌面快捷方式创建
HBuilder X是专为Web、小程序及uni-app跨平台开发打造的轻量级IDE,具备极速启动、智能提示与护眼设计。绿色免安装,解压即用,操作简单,助你高效开启前端开发之旅。(239字)
|
3月前
|
人工智能 自然语言处理 数据挖掘
2026年数据分析工具推荐,让数据真正为企业所用
2026年,“数据要素价值释放年”全面落地,AI驱动型BI工具需求激增。阿里云瓴羊Quick BI凭借原生AI助手“智能小Q”,实现自然语言查询、自动归因、预测模拟与一键报告,支持湖仓一体架构与细粒度安全管控,覆盖零售、制造、金融等多行业。其全链路适配、低门槛全员用数及灵活计费体系,使其成为企业数据驱动转型的首选工具。(239字)
|
3月前
|
人工智能 开发框架 自然语言处理
智能体来了:从0到1的变革,定义AI新边界
内容摘要:论文深度解析从对话式AI向“智能体(AI Agent)”覆盖的核心逻辑,拆解感知、决策、记忆与执行四大基础能力,并为开发者提供从零构建智能体的实操路径与行业避坑指南,助你精准捕捉大模型时代的定义性机遇。
195 1
|
4月前
|
机器学习/深度学习 存储 数据采集
高频面试题汇总
本文系统梳理大模型核心技术,涵盖Transformer自注意力机制、多头注意力、位置编码原理,详解LLaMA与GPT架构差异,解析LoRA、ZeRO优化策略,介绍FlashAttention内存优化,并提供显存与训练时间估算方法,覆盖训练、推理、部署全流程关键技术点。
701 0
|
11月前
|
存储 人工智能 数据可视化
如何实现电竞比赛的实时直播?
电竞直播如何实现丝滑体验?揭秘其背后架构与技术!从选手操作数据捕获到观众多视角体验,超低延迟编码、智能OB系统、全球加速网络等五大关键技术支撑。面对海量数据与同步挑战,采用列式存储、时间戳同步和区块链防作弊。未来还将迎来云游戏式直播、AR可视化等创新,甚至全息投影与AI集锦生成,为观众带来沉浸式享受。
如何实现电竞比赛的实时直播?
微信养号脚本,导入手机号自动添加,autojs代码分享
这段代码实现了基本的微信自动添加好友功能,包括读取手机号文件、启动微信、搜索用户和发送
|
数据采集 人工智能 API
生物医药蛋白分子数据采集:支撑大模型训练的技术实践分享
作为生物信息学领域的数据工程师,近期在为蛋白质相互作用预测AI大模型构建训练集时,我面临着从PDB、UniProt等学术数据库获取高质量三维结构、序列及功能注释数据的核心挑战。通过综合运用反爬对抗技术,成功突破了数据库的速率限制、验证码验证等反爬机制,将数据采集效率提升4倍,为蛋白质-配体结合预测模型训练提供了包含10万+条有效数据的基础数据集,提高了该模型预测的准确性。
566 1
|
人工智能 程序员 数据库
AI客服会完全替代人工客服吗
本文介绍了AI客服的应用和发展,包括作者亲身搭建AI客服的经历,以及AI客服在提供24小时服务、快速响应客户需求、精准回答问题等方面的优势。文中还提到了构建AI总结助手、客户对话分析和智能导购助手的具体应用场景,展示了AI客服在提高工作效率、降低成本和优化用户体验方面的潜力。最后,文章讨论了AI客服替代人工客服的可能性及其局限性,强调应结合两者优势共同提升服务质量。
|
Java 应用服务中间件
面对海量网络请求,Tomcat线程池如何进行扩展?
【10月更文挑战第4天】本文详细探讨了Tomcat线程池相较于标准Java实用工具包(JUC)线程池的关键改进。首先,Tomcat线程池在启动时即预先创建全部核心线程,以应对启动初期的高并发请求。其次,通过重写阻塞队列的入队逻辑,Tomcat能够在任务数超过当前线程数但未达最大线程数时,及时创建非核心线程,而非等到队列满才行动。此外,Tomcat还引入了在拒绝策略触发后重新尝试入队的机制,以提高吞吐量。这些优化使得Tomcat线程池更适应IO密集型任务,有效提升了性能。
面对海量网络请求,Tomcat线程池如何进行扩展?
|
Kubernetes 持续交付 开发工具
ACK One GitOps:ApplicationSet UI简化多集群GitOps应用管理
ACK One GitOps新发布了多集群应用控制台,支持管理Argo CD ApplicationSet,提升大规模应用和集群的多集群GitOps应用分发管理体验。

热门文章

最新文章

下一篇
开通oss服务