24.ES中什么是match查询?match查询可以做什么?如何使用match查询?嘻哈的简写笔记——Elastic Search

1.什么是match查询?match查询可以做什么?

我们知道了term查询不可以进行分词查询的,那么如何进行分词查询呢?就可以使用match查询;
match查询属于高层查询他会根据你查询的不同字段类型,采用不同的查询方式;(比较智能化)

例如:

·查询的是日期或者是数值的话,他会将你基于的字符串查询内容转换为日期或者数值对待;(智能把字符串转化为数值)
·如果查询的内容是一个不能别分词的内容(keyword),match查询不会对你指定的关键词进行分词; (不该分词的内容不给你分)
·如果查询的内容是一个可以被分词的内容(text),match会将你指定的查询内容根据一定的方式去分词,去分词库中匹配指定的内容; (还可以自己指定分词方式)
match查询,实际底层就是多个term查询,将多个term查询结果给汇合在一起;(match查询就是多个term查询拼凑的)

声明:以上例子为嫖来的


2.如何使用match查询?

一、match_all 查询所有!!!就是查询类型(表)里面所有的值(整张表的内容);

#match查询
GET /book/novel/_search
{
  "query": {
    "match_all": {}
  }
}

含义:搜索过程:指明索引,类型,然后_search 代表是一个检索;query也代表检索;然后就是match_all 代表搜索所有

二、match 依据字段desc进行查询;

#match查询
GET /book/novel/_search
{
  "query": {
    "match": {
      "desc": "好书三"
    }
  }
}

含义:搜索过程:用match进行搜索”好书三” 然后他会给我们进行分词,首先他会先检查desc是不是一个可以进行分词的字段;这个在我们设置的时候进行text类型是可以进行分词的keyword类型是不会被分词的;然后desc是一个text类型的;然后他就会进行分词,分为”好书”+”三” ;然后他就会去数据库里匹配哪一条数据desc里的分词里有”好书”或者有”三”;只要有的(有一个就行)它都会给匹配出来
注意:如果库里的数据分词的时候没有**分出”三”**来,但是又”三个”他也不会匹配,他是看分词,不是看包含!!!
。。。。。。。。。。。。。

嘻哈的简写笔记

。。。。。。。。。。。。。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值