Elasticsearch查询的基本使用
#初始化准备(创建库和user)
#创建表
PUT /libzyh
{
“settings”:{
“number_of_shards” : 3,
“number_of_replicas” : 0
},
“mappings”:{
“user”:{
“properties”:{
“name”: {“type”:“text”},
“address”: {“type”:“text”},
“age”: {“type”:“integer”},
“interests”: {“type”:“text”},
“birthday”: {“type”:“date”}
}
}
}
}
#添加user
PUT /libzyh/user/1
{
“name”:“zhangsan”,
“address”:“bei jing chang ping qu sha yang lu”,
“age”:19,
“birthday”:“2000-10-12”,
“interests”:“xi huan hejiu,duanlian,lvyou”
}
PUT /libzyh/user/2
{
“name”:“lisi”,
“address”:“bei jing chang ping qu sha yang lu”,
“age”:18,
“birthday”:“2001-10-12”,
“interests”:“xi huan tingyinyue,changge,tiaowu”
}
PUT /libzyh/user/3
{
“name”:“wangwu”,
“address”:“bei jing chang ping qu sha yang lu”,
“age”:33,
“birthday”:“1986-10-12”,
“interests”:“xi huan meinv,meinv,meinv”
}
PUT /libzyh/user/4
{
“name”:“zhaoliu”,
“address”:“bei jing chang ping qu sha yang lu”,
“age”:31,
“birthday”:“1988-10-12”,
“interests”:“xi huan hejiu,wanyouxi,shuijiao”
}
PUT /libzyh/user/6
{
“name”:“lvyou”,
“address”:“bei jing chang ping qu sha yang lu,lvyou”,
“age”:32,
“birthday”:“1987-10-12”,
“interests”:“xi huan chifan,shuijiao,dadoudou,changge”
}
#查询所有
GET /libzyh/_search
#查询name为lisi的
GET /libzyh/_search?q=name:lisi
#查询年龄为18的
GET /libzyh/_search?q=age:18
#获取interests字段中有changge的
GET /libzyh/user/_search/
{
“query”: {
“term”: {“interests”: “changge”}
}
}
#from size 相当于sql语句中的limit
GET /libzyh/user/_search/
{
“from”: 0,
“size”: 1,
“query”: {
“term”: {“interests”: “changge”}
}
}
#显示数据的版本
GET /libzyh/user/_search/
{
“from”: 0,
“size”: 1,
“version”: true,
“query”: {
“term”: {“interests”: “changge”}
}
}
#匹配name为lisi的
GET /libzyh/user/_search/
{
“from”: 0,
“size”: 1,
“version”: true,
“query”: {
“match”: {
“name”: “lisi”
}
}
}
#查询user表中的所有
GET /libzyh/user/_search/
{
“version”: true,
“query”: {
“match_all”: {}
}
}
#多个匹配,query:匹配词语,field在哪个区域查询
GET /libzyh/user/_search
{
“query”:{
“multi_match”: {
“query”: “lvyou”,
“fields”: [“interests”,“name”]
}
}
}
#中的所有分词,并且保证各个分词的相对位置不变:,匹配interests字段中同时含有这两个词的user
GET libzyh/user/_search
{
“query”:{
“match_phrase”:{
“interests”: “duanlian,shuoxiangsheng”
}}}
#返回指定字段address,和name
GET /libzyh/user/_search
{
“_source”: [“address”,“name”],
“query”: {
“match”: {
“interests”: “changge”
}
}
}
#控制加载字段
GET /libzyh/user/_search
{
“query”: {
“match_all”: {}
},
“_source”: {
“includes”: [“name”,“address”],
“excludes”: [“age”,“birthday”]
}
}
#还可以使用通配符*
GET /libzyh/user/_search
{
“_source”: {
“includes”: “addr*”,
“excludes”: [“name”,“bir*”]
},
“query”: {
“match_all”: {}
}
}
DELETE lib3
#按照年龄的升序排序
GET /libzyh/user/_search
{
“query”: {
“match_all”: {}
},
“sort”: [
{
“age”: {
“order”:“asc”
}
}
]
}
#前缀查询,查询所有name以zhao开头
GET /libzyh/user/_search
{
“query”: {
“match_phrase_prefix”: {
“name”: {
“query”: “zhao”
}
}
}
}
#查询生日在这两个之间的
GET /libzyh/user/_search
{
“query”: {
"range": {"birthday": {"from": "1990-10-10","to": "2018-05-01"
}
}
}
}
#查询n年龄在20-25之间的user include_lower是否包含最小值,
#"include_upper"是否包含最大值
GET /libzyh/user/_search
{
“query”: {
“range”: {
“age”: {
“from”: 1,
“to”: 25,
“include_lower”: true,
“include_upper”: false
}
}
}
}
#wildcard通配查询,*代表多个字符,与sql查询中的%类似
#?代表单个字符,与sql查询中_相似只能匹配一个字符
GET /libzyh/user/_search
{
“query”: {
“wildcard”: {
“name”: “zhao*”
}
}
}
#查询name为lvyo?的user
GET /libzyh/user/_search
{
“query”: {
“wildcard”: {
“name”: “lvyo?”
}
}
}
#fuzzy实现模糊查询 就算有一点不一样也可以匹配的到
GET /libzyh/user/_search
{
“query”: {
“fuzzy”: {
“interests”: “chagge”
}
}
}
亮的区域, 般和查询的位置 致
GET /libzyh/user/_search
{
“query”:{
“match”:{
“interests”: “changge”
}
},
“highlight”: {
“fields”: {
“interests”: {}
}
}
}
#Filter查询
#filter是不计算相关性的,同时可以cache。因此,filter速度要快于query。测试,先创建一个表
DELETE /lib12
POST /lib12/items/_bulk
{“index”: {"_id": 1}}
{“price”: 40,“itemID”: “ID100123”}
{“index”: {"_id": 2}}
{“price”: 50,“itemID”: “ID100124”}
{“index”: {"_id": 3}}
{“price”: 25,“itemID”: “ID100124”}
{“index”: {"_id": 4}}
{“price”: 30,“itemID”: “ID100125”}
{“index”: {"_id": 5}}
{“price”: null,“itemID”: “ID100127”}
#过滤出价格为40的所有结果
GET /lib12/items/_search
{
“post_filter”: {
“term”: {
“price”: 40
}
}
}
#过滤出价格是25或40的所有结果
GET /lib12/items/_search
{
“post_filter”: {
“terms”: {
“price”: [25,40]
}
}
}
#因为itemid被分词索引了,如果使 term.需要加.keyword
GET /lib12/items/_search
{
“post_filter”: {
“term”: {
“itemID.keyword”: “ID100123”
}
}
}
#同上而match则不用
GET /lib12/items/_search
{
“post_filter”: {
“match”: {
“itemID”: “ID100123”
}
}
}
#查看分词索引
GET /lib12/_mapping
Elasticsearch查询的基本使用相关推荐
- elasticsearch 查询(match和term)
elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...
- es查询语句拼接 java_JAVA使用ElasticSearch查询in和not in的实现方式
JAVA使用ElasticSearch查询in和not in的实现方式 发布时间:2020-08-22 16:03:11 来源:脚本之家 阅读:119 作者:执笔记忆的空白 ElasticSearch ...
- ElasticSearch查询 第四篇:匹配查询(Match)
<ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...
- Elasticsearch查询性能优化
constant_score的用处 当我们不关心检索词频率TF(Term Frequency)对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤语句filter包 ...
- 【Elasticsearch】Elasticsearch 查询过程中的 pre-filter 原理
1.概述 转载:添Elasticsearch 查询过程中的 pre-filter 原理 大家都知道在对索引执行查询的时候,需要在所有的分片上执行查询,因为无法知道被查询的关键词位于哪个分片,对于全文查 ...
- 【Elasticsearch】Elasticsearch查询参数batched_reduce_size的解释
1.概述 当我们使用Elasticsearch查询数据时,如果数据量非常大时,会命中大量分片中的大量数据,可能会造成集群内存异常,此时可以通过一个高级参数batched_reduce_size进行控制 ...
- Go Elasticsearch 查询快速入门
文章目录 0.前言 1.根据 ID 查询 2.精确匹配单个字段 3.精确匹配单个字段的多个值 4.全文查询 5.范围查询 6.判断某个字段是否存在 7.bool 组合查询 must filter sh ...
- 为什么Elasticsearch查询变得这么慢了?
Elasticsearch 最少必要知识实战教程直播回放 0.引言 Elasticsearch社区中经常看到慢查询问题:"你能帮我看看Elasticsearch的响应时间吗?"或者 ...
- 助你掌握搜索神器,10个实用的Elasticsearch查询技巧
前言 Elasticsearch是一个非常流行的搜索引擎,已经成为了许多企业的首选解决方案.然而,我们要想成为一个优秀的程序员,就必须掌握各种查询技巧.本文将向大家介绍10个实用的Elastics ...
- Elasticsearch:Elasticsearch 查询示例 - 动手练习(一)
在我之前的文章文章: Elasticsearch:有用的 Elasticsearch 查询示例 开始使用 Elasticsearch (2) 我列举了很多关于 Elasticsearch 查询的例子. ...
最新文章
- 为何采用双亲委派机制
- weblogic各个版本对JDK和Spring的支持度
- python的matplotlib的函数_在Python中使用matplotlib绘制条件函数
- Maven : Log4j2 could not find a logging implementation
- 电商促销海报PSD模板|临摹优秀,设计好的banner广告从试炼开始!
- 远程连接桌面不能全屏显示的解决方法
- 1、CSS height 属性,2、Flex 布局教程:实例篇,3、CSS 链接,4、CSS display 属性,5、表格,
- xvidcore.dll not found视频播放问题
- PyCharm安装LabelImg
- python代替按键精灵 游戏内失灵_python游戏脚本之调用按键精灵插件模拟输入(二)...
- 通用数据权限管理系统设计
- linux的mysql占用cpu过高_关于在Linux环境下,Mysql占用CPU使用率100%的优化
- 市政基础设施工程与建筑工地施工人员安全管理实名制通道系统的应用与解决方案
- 伦敦 quant_伦敦统一用户组11
- BZOJ 1778: [Usaco2010 Hol]Dotp 驱逐猪猡 (高斯消元)
- 如何打开数据库的db.opt文件
- RK系列开发板音频驱动适配指南(一)
- 7-4 1.1.4 破碎的项链(USACO)
- mysql数据库中查询姓氏_数据库查询表添加姓氏
- 服务器里怎么给网站刷排名,细数刷排名软件的原理与实现过程
热门文章
- 猿创征文|嵌入式从业者从懵懂到专业
- 北美独立战争: 美国人编出来的神话
- Python基础从0到1自我学习(3)
- Unity 获取鼠标点击图片时 获取点击位置的像素
- x86,8086,386是什么
- JS中函数的返回值介绍
- 通达OA二次开发手册
- 2016-1-21高博活动
- php5.0 cms安装教程,MySQL_KingCMS5.0从安装到设置使用教程,1.首先到KingCMS官方下载KingCMS5.0 - phpStudy...
- 算法分析与设计(VC问题团问题独立集问题)