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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 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类型不会被分词器解析

相关文章
|
9月前
|
存储 自然语言处理 Java
【elasticsearch】记录ES查询数据结果为空的问题(单个字搜索可以,词语搜索为空)
【elasticsearch】记录ES查询数据结果为空的问题(单个字搜索可以,词语搜索为空)
371 0
接口数据多条件搜索(模糊查询)
接口数据多条件搜索(模糊查询)
188 0
|
2月前
|
SQL 前端开发 Java
实现数据的搜索( 筛选 )功能
实现数据的搜索( 筛选 )功能
|
2月前
|
人工智能 Python
条件过滤检索
向量检索服务DashVector支持条件过滤和向量相似性检索相结合,在精确满足过滤条件的前提下进行高效的向量检索。
|
12月前
|
JavaScript
js多条件筛选(可单条件搜索还可以模糊查询)
js多条件筛选(可单条件搜索还可以模糊查询)
214 0
|
10月前
|
数据采集 开发者
|
存储 Java API
ES多字段匹配查询时的权重控制
ES多字段匹配查询时的权重控制
699 0
ES多字段匹配查询时的权重控制
|
12月前
|
前端开发 JavaScript
多条件搜索
多条件搜索
72 0
|
SQL 索引
白话Elasticsearch03- 结构化搜索之基于bool组合多个filter条件来搜索数据
白话Elasticsearch03- 结构化搜索之基于bool组合多个filter条件来搜索数据
277 0
odoo 为可编辑列表视图字段搜索添加查询过滤条件
odoo 为可编辑列表视图字段搜索添加查询过滤条件
180 0