ElasticSearch_(10)term多种查询

介绍

  1. 单词级别查询
  2. 这些查询通常用于结构化的数据,比如:number, date, keyword 等,而不是对 text
  3. 也就是说,全文本查询之前要先对文本内容进行分词、而单词级别的查询直接在相应字段的反向索引中精确查找,单词级别的查询一般用于数值、日期等类型的字段上

准备工作

使用 kibana 可视化工具
删除 nba 索引
创建 nba 索引 和 映射

PUT nba
{
  "mappings": {
    "properties": {
      "birthDay":{
        "type":"long"
      },
      "code":{
        "type":"text"
      },
      "country":{
        "type":"text"
      },
      "countryEn":{
        "type":"text"
      },
      "displayAffiliation":{
        "type":"text"
      },
      "displayName":{
        "type":"text"
      },
      "displayNameEn":{
        "type":"text"
      },
      "draft":{
        "type":"long"
      },
      "heightValue":{
        "type":"float"
      },
      "jerseyNo":{
        "type":"text"
      },
      "playYear":{
        "type":"long"
      },
      "playerId":{
        "type":"text"
      },
      "position":{
        "type":"text"
      },
      "schoolType":{
        "type":"text"
      },
      "teamCity":{
        "type":"text"
      },
      "teamCityEn":{
        "type":"text"
      },
      "teamConference":{
        "type":"text"
      },
      "teamConferenceEn":{
        "type":"text"
      },
      "teamName":{
        "type":"keyword"
      },
      "teamNameEn":{
        "type":"keyword"
      },
      "weight":{
        "type":"text"
      }
    }
  }
}

导入数据,参考:数据导入参考

curl -X POST "localhost:9200/_bulk" -H 'Content-Type: application/json' --data-binary @player

Term query 精确匹配查询

查找球衣号码为23的球员

POST nba/_search
{
  "query":{
    "term":{
      "jerseyNo": "23"
    }
  }
}

Exsit query 在特定的字段中查找非空值的文档

查出 teamNameEn 字段不为空的文档

POST nba/_search
{
  "query":{
    "exists":{
      "field": "teamNameEn"
    }
  }
}

Prefix query 查找包含带有指定前缀term的文档

适合 字段类型 为 keyword, 非 text类型

POST nba/_search
{
  "query":{
    "prefix": {
      "teamNameEn": "Rock"
    }
  }
}

wildcard query 支持通配符查询

*表示任意字符 ? 表示任意单个字符

POST nba/_search
{
  "query":{
    "wildcard": {
      "teamNameEn": "Ro*s"
    }
  }
}

Regexp query 正则表达式查询

POST nba/_search
{
  "query":{
    "regexp": {
      "teamNameEn": "Ro.*s"
    }
  }
}

ids query 通过ID查询

POST nba/_search
{
  "query":{
    "ids":{
      "values": [1,2]
    }
  }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值