首页 > 其他分享 >elasticsearch 查询:match查询

elasticsearch 查询:match查询

时间:2024-01-30 09:03:52浏览次数:26  
标签:search 查询 field elasticsearch address query match

1. match查询 match查询属于高层查询,会根据查询内容不一样,采用不同的查询方式。

  • 查询的内容如果是日期或者数值,会将你基于的字符串查询内容转换为日期或者数值对待;
  • 如果查询的内容是一个不能被分词的内容(keyword),match查询不会将指定的关键字分词;
  • 如果查询内容是一个可以被分词的内容(text),match会将指定的查询内容根据一定方式去分词,去分词库中匹配指定内容;
match查询,实际底层就是多个term查询,将多个term查询的结果封装到一起。
#测试--match查询:address字段是text类型,查询address包含成都市的数据
POST /king_test_person/_search
{
  "query": {
    "match": {
      "address": "成都市"        
    }
  }
}

  

2. match_all查询 查询全部内容,不指定任何查询条件。
#测试--match_all查询
POST /king_test_person/_search
{
  "from": 0, 
  "size": 20, 
  "query": {
    "match_all": {}
  }
}

 

3.布尔match查询

基于一个field匹配的内容,采用and或者or的方式连接
#测试--布尔match:查询address 包含四川省并且包含成都市的
POST /king_test_person/_search
{
  "query": {
    "match": {
      "address": {
        "query": "四川省 成都市",
        "operator": "and"
      }
    }
  }
}

#测试--布尔match:查询address 包含四川省或者成都市
POST /king_test_person/_search
{
  "query": {
    "match": {
      "address": {
        "query": "四川省 成都市",
        "operator": "or"
      }
    }
  }
}
  4. multi_match查询 match真对一个field做检索,multi_match针对多个field进行检索,多个field对应一个text。
#测试--multi_match查询:查询address,introduce 匹配湖南省的数据
POST /king_test_person/_search
{
  "query": {
    "multi_match": {
      "query": "湖南省",                   #指定text
      "fields": ["address","introduce"]   #指定field列表
    }
  }
}

标签:search,查询,field,elasticsearch,address,query,match
From: https://www.cnblogs.com/wq-blogs/p/17995716

相关文章

  • elasticsearch 查询:其他查询prefix&fuzzy&wildcard&range®exp
    1.prefix查询前缀查询,可以通过一个关键字去指定一个field的前缀,从而查到指定的文档。#测试--prefix查询POST/king_test_person/_search{"query":{"prefix":{"name":{"value":"张"}}}} 2. fuzzy查询模糊查询,......
  • elasticsearch 深分页查询:scroll
    ES对from+size是有限制的,from+size不能超过10000。原理:from+size在ES中的查询方式:将指定关键字分词将词汇去分词库中检索,得到多个文档id取各分片中拉去指定数据(耗时较长)根据scroe排序(耗时较长)根据from舍弃一部分数据返回查询结果scroll在ES中的查询方式:将指定关键字分......
  • java用多线程批次查询大量数据(Callable返回数据)方式
    我看到有的数据库是一万条数据和八万条数据还有十几万条,几百万的数据,然后我就想拿这些数据测试一下,发现如果用java和数据库查询就连一万多条的数据查询出来就要10s左右,感觉太慢了。然后网上都说各种加索引,加索引貌似是有查询条件时在某个字段加索引比较快一些,但是毕竟是人家的库不......
  • 查询表、视图字符串字段的长度
    SELECTa.colorder字段序号,a.name字段名,b.name类型,CASEWHENCOLUMNPROPERTY(a.id,a.name,'PRECISION')=-1THEN',长度无限制'ELSE',长度限制'+CAST(COLUMNPROPERTY(a.id,......
  • oracle表空间扩容与查询剩余表空间
    表空间扩容su-oraclesqlplus/assysdbaaltertablespaceTESTadddatafile'+DATA/RACDB/DATAFILE/test001.dbf'size32760M;查看ASM共享磁盘使用空间SQL>coltotal_sizefora20;SQL>colfree_sizefora20;SQL>selectname,round(total_mb/1024)||......
  • GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!
    作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率?在回答这个问题之前,我们先了解一......
  • GaussDB(for MySQL)剪枝功能,让查询性能提升70倍!
    作者,祝青平,华为云数据库内核高级工程师。擅长数据库优化器内核研发,9年数据库内核研发经验,参与多个TP以及AP数据库的研发工作。近日,华为云数据库社区下面有这样一条用户提问留言:请问,如何通过MySQL提升DISTINCT,尤其是多表连接下DISTINCT的查询效率?在回答这个问题之前,我们先了解一下DI......
  • Linux如何查询是哪些进程占用了端口
    Addressalreadyinuse这个提示,想必大家遇到过,怎么能快速找到问题并解决呢?下面有几种姿势可以了解一下.在对网络连接或特定于应用程序的问题进行故障排除时,首先要检查的事情之一应该是系统上实际使用了哪些端口,以及哪个应用程序正在侦听特定的端口。本文介绍了如何使用netstat......
  • logstash实现Mysql(Tidb)数据到Elasticsearch数据迁移(增量同步)
    1、下载Logstash和Elasticsearch,需要版本一致,本次使用版本均为7.8.0版本[root@zjkdata]#llelasticsearch-7.8.0-linux-x86_64.tar.gzlogstash-7.8.0.tar.gz-rw-r--r--.1rootroot31911256112月2815:39elasticsearch-7.8.0-linux-x86_64.tar.gz-rw-r--r--.1rootroo......
  • Python elasticsearch-py类库基础用法
    实践环境https://pypi.org/project/elasticsearch/pipinstallelasticsearch==7.6.0离线安装包及依赖包下载地址:https://files.pythonhosted.org/packages/f5/71/45d36a8df68f3ebb098d6861b2c017f3d094538c0fb98fa61d4dc43e69b9/urllib3-1.26.2-py2.py3-none-any.whl#sha256=......