ES 匹配多个搜索条件和精确查询

简介: ES 匹配多个搜索条件和精确查询

匹配多个搜索条件

GET /weiyihe/user/_search
{
  "query":{
    "match": {
      "tags": "男"
    }
  }
}

网络异常,图片无法展示
|

网络异常,图片无法展示
|

多个条件直接用空格隔开,满足其中一个结果,就能被查出,这时候可以通过score进行基本判断

网络异常,图片无法展示
|

注意score,满足的条件越多.score越高权重越大

网络异常,图片无法展示
|

精确查询

term查询是直接通过倒排索引指定的词条进行精确的查找的 效率会更高

关于分词

 由于term是倒排索引,直接进行精确查询

match会使用分词器进行解析,先分析文档,然后在通过分析的文档进行查询

两个字符串类型

text和keyword

text可以被分词器解析

keyword由于不可分割,不可以被分词器解析

创建索引库手动指名字段类型

PUT testdb
{
  "mappings": {
    "properties": {
      "name":{
        "type": "text"
      },
      "desc":{
        "type":"keyword"
      }
    }
  }
}

网络异常,图片无法展示
|

再创建一个索引库,使用默认字段,新增数据

网络异常,图片无法展示
|

再插入一条

网络异常,图片无法展示
|

查看数据

网络异常,图片无法展示
|

使用keyword分词器查询数据 ,发现结果不会被分隔,因为keyword是一个整体,也可以说字符串没有被分析

GET _analyze
{
  "analyzer": "keyword",
  "text": "魏一鹤学习Java"
}

网络异常,图片无法展示
|

使用普通数据类型使用分词器,发现结果被分隔,正常的字符串是可以分析的

GET _analyze
{
  "analyzer": "standard",
  "text": "魏一鹤学习Java"
}

网络异常,图片无法展示
|

结论:

keyword类型不会被分词器解析

相关文章
|
存储 Java
BigDecimal类型的数据如何保留小数点后四位
BigDecimal类型的数据如何保留小数点后四位
593 0
接口数据多条件搜索(模糊查询)
接口数据多条件搜索(模糊查询)
348 0
|
自然语言处理 索引
ES中如何对text字段进行精确匹配
ES中如何对text字段进行精确匹配
1311 0
WK
|
10月前
|
计算机视觉
QLabel
QLabel是Qt框架中的控件类,主要用于显示文本或图像。它可以显示静态文本、支持富文本和多种图像格式,提供丰富的成员函数如setText、setPixmap等,支持对齐方式和样式表设置,具备一定的交互性,广泛应用于图像标注、处理和交互等场景。
WK
486 0
|
调度
MNN createSession 之 Schedule(三)
MNN createSession 之 Schedule(三)
134 5
|
消息中间件 数据可视化 Kafka
消息中间件系列教程(21) -Kafka- 集群搭建(自带Zookeeper)
消息中间件系列教程(21) -Kafka- 集群搭建(自带Zookeeper)
234 0
|
SQL 存储 调度
|
自然语言处理 Docker 容器
ElasticSearch 实现分词全文检索 - ES、Kibana、IK分词器安装
ElasticSearch 实现分词全文检索 - ES、Kibana、IK分词器安装
196 0
|
监控 Java Spring
Spring Boot中一般如何使用线程池?
在Spring Boot应用程序中,合理地使用线程池可以有效地提高系统的性能和并发处理能力。本文将深入探讨Spring Boot中如何一般性地使用线程池,包括线程池的配置、使用方式以及一些最佳实践。
1695 0
|
Java Spring
required a bean of type ‘org.springframework.web.client.RestTemplate‘ that could not be found.
required a bean of type ‘org.springframework.web.client.RestTemplate‘ that could not be found.
required a bean of type ‘org.springframework.web.client.RestTemplate‘ that could not be found.