【Elasticsearch实践】(六)ES搜索
一、复杂查询
1.1、复杂条件搜索
# 复杂条件搜索
GET tindex/_doc/_search
{"query":{"match":{"name": "wells"}}
}
1.2、指定输出字段
# 指定输出字段
GET /tindex/_doc/_search
{"query": {"match":{"name": "wells"}},"_source": ["name", "age"]
}
1.3、排序
# 排序
GET /tindex/_doc/_search
{"query": {"match": {"name": "wells"}},"_source": ["name", "age"],"sort": [{"age": {"order": "desc"}}]
}
1.4、分页查询
# 分页查询
GET /tindex/_doc/_search
{"query": {"match": {"name": "wells"}},"from": 0,"size": 1
}
1.5、布尔值查询
1.5.1、must (and)
GET /tindex/_doc/_search
{"query": {"bool": {"must": [{"match": {"name": "wells"}},{"match": {"age": 17}}]}}
}
1.5.2、should (or)
# bool: should 查询 where name=wells or age = 17
GET /tindex/_doc/_search
{"query": {"bool": {"should": [{"match": {"name": "wells"}},{"match": {"age": 17}}]}}
}
1.5.3、must_not (not)
# bool: must_not 查询 where name != wells
GET /tindex/_doc/_search
{"query": {"bool": {"must_not": [{"match": {"name": "wells"}},{"match": {"name": "tom"}}]}}
}
# 或者 bool: must_not 查询 where name != wells
GET /tindex/_doc/_search
{"query": {"bool": {"must_not": [{"match": {# 通过空格隔开,设置多个值"name": "wells tom"}}]}}
}
1.5.4、过滤器filter
# filter
GET /tindex/_doc/_search
{"query": {"bool": {"must": [{"match": {"name": "wells"}}],"filter": {"range": {"age": {"lt": 30,"gt": 18}}}}}
}
1.6、匹配多个值
# 匹配多个值
GET /tindex/_doc/_search
{"query": {"match": {"tags": "man 技术"}}
}
二、精确查询
两个类型:
- text:会被分词
- keyword:不会被分词
通过 _analyze 对词进行分析查看,text与keyword都是fields的类型,通过类型可以区分是否精确查询
# text 与 keyword
GET _analyze
{"analyzer": "standard","text": "wells学es"
}# text 与 keyword
GET _analyze
{"analyzer": "keyword","text": "wells学es"
}
关于分词:
- term:查询是直接通过倒排索引指定的词条进行精确查找的,不会进行分词
- match:使用分词器进行解析,再进行查询
# term 与 match
GET /tindex/_doc/_search
{"query": {"match": {"tags": "技术宅男"}}
}# term 与 match
GET /tindex/_doc/_search
{"query": {"term": {"tags": "技术宅男"}}
}
2.1、精确匹配多个值
2.2、高亮
2.2.1、默认高亮
高亮
GET /tindex/_doc/_search
{"query": {"match": {"tags": "技术"}},"highlight":{"fields":{"name":{}}}
}
2.2.2、自定义高亮
GET /tindex/_doc/_search
{"query": {"match": {"tags": "技术"}},"highlight":{"pre_tags": "<p color='red'>","post_tags": "</p>","fields":{"name":{}}}
}
【Elasticsearch实践】(六)ES搜索相关推荐
- Elasticsearch(三)——Es搜索(简单使用、全文查询、复合查询)、地理位置查询、特殊查询、聚合操作、桶聚合、管道聚合
Elasticsearch(三)--Es搜索(简单使用.全文查询.复合查询).地理位置查询.特殊查询.聚合操作.桶聚合.管道聚合 一.Es搜索 这里的 Es 数据博主自己上网找的,为了练习 Es 搜索 ...
- Elasticsearch实践(二)在Springboot微服务中集成搜索服务
关于如何用Docker搭建Elasticsearch集群环境可以参考前一篇:Elasticsearch实践(一)用Docker搭建Elasticsearch集群.本文主要介绍,如果在Springboo ...
- ES搜索(ElasticSearch)入门理论篇
ElasticSearch理论篇 SQL查询方式 ES相关知识 聊聊Doug Cutting 什么是Lucene 什么是Nutch 演变 Lucene和ES搜索的关系 ES概述 使用者 对比 ES搜索 ...
- 如何使用Elasticsearch构建强大的搜索和分析应用程序(2023年最新ES新手教程)
1.Elasticsearch 非常强大的开源搜索引擎,可以帮助我们从海量数据中快速找到需要的内容 什么是elasticsearch 一个开源的分布式搜索引擎,可以用来实现搜索.日志统计.分析.系统监 ...
- Elasticsearch(六)了解全文搜索
遇到的问题 通过前面的学习,我们已经可以使用elasticsearch来进行数据的搜索了,但此时我们发现了一个问题,这个问题如果没有解决好就很影响我们后续的使用,那么该问题是什么呢?我们来看一下: 上 ...
- 使用Elasticsearch 构建 .NET 企业级搜索
最近几年出现的云计算为组织和用户带来了福音.组织对客户的了解达到前所未有的透彻,并能够采用个性化通信锁定客户.用户几乎可以随时随地获取其数据,使其更加易于访问和使用.为了存储所有这些数据,大型数据中心 ...
- 用Elasticsearch构建电商搜索平台(有赞)
随着互联网数据规模的爆炸式增长,如何从海量的历史,实时数据中快速获取有用的信息,变得越来越有挑战性. 电商数据系统主要类型 一个中等的电商平台,每天都要产生百万条原始数据,上亿条用户行为数据.一般来说 ...
- 【ElasticSearch】大数据搜索选开源还是商业软件?ElasticSearch 对比 Splunk
1.概述 转载:大数据搜索选开源还是商业软件?ElasticSearch 对比 Splunk述 本文就架构,功能,产品线,概念等方面就ElasticSearch和Splunk做了一下全方位的对比,希望 ...
- Elasticsearch实践(一)基本概念
elasticsearch是一个分布式的.可扩展的.提供restful风格服务的搜索引擎.数据分析引擎.基于Apache Lucene实现 Elasticsearch是一个高度可扩展的,开源的全文搜索 ...
- 【ES】ES搜索结果中各个字段介绍,hits,took,timeout
ES搜索结果中各个字段介绍 空搜索 搜索API的最基础的形式是没有指定任何查询的空搜索,它简单地返回集群中所有索引下的所有文档: GET /_search 返回的结果(为了界面简洁编辑过的)像这样: ...
最新文章
- ASP.NET MVC CODE FIRST 图书管理系统 数据库
- Opencv4.5.0+VS2019+win10环境配置
- python装饰器实例-python装饰器案例
- linux 程序返回值 139,Linux系统监控之ssh登陆自动139邮件短信提醒
- 计量经济学第六版计算机答案,伍德里奇计量经济学导论计算机习题第六章第13题c_6.13...
- java年度总结自我认知,java自我评价
- erlang 常用函数
- Office 365 Connectors 的使用与自定义开发
- 使用git来管理微信小程序
- 检测到在集成的托管管道模式下不适用的ASP.NET设置的解决方法(非简单设置为【经典】模式)
- CSS 常见布局 水平垂直居中对齐
- c++ cout 不能正常打印uint8_t
- 电源芯片使能管脚EN的6种玩法,助力设计稳定可靠的电源
- matlab 图形对称,求任意轴对称图形的核心的Matlab代码实现
- LaTex学习教程——插入图片及图片的引用
- JavaScript实时获取现货黄金,白银,美元指数价格代码
- pip uninstall numpy:报错
- 马上就2023年了,Go语言成了吗?
- linux freemind字体,解决freemind中文乱码
- Re: 一著名软件公司的java笔试算法题!