elasticsearch02-Request Body深入搜索
02. Request Body深入搜索
# 获取健康值
GET _cat/health
# 创建一个_id=1的记录!
PUT /test1/_doc/1
{
"name":"haima",
"age":35,
"gender":"男"
}
# 获取mappings信息
GET test1
GET test1/_mapping
GET test1/_mapping?pretty
# 获取所有索引所有信息
GET _search
# 获取test1所有信息
GET test1/_search
# 获取test1索引 类型为_doc所有信息
GET test1/_doc/_search
# 获取test1所有信息
GET test1/_search
{
"query": {
"match_all": {}
}
}
# 修改单个字段
POST test1/_update/1
{
"doc": {
"age":37
}
}
# 获取id为1的
GET /test1/_doc/1
# 删除test1索引的命令
DELETE test1
# 删除test1索引 _id=2的记录
DELETE test1/_doc/2
1.1 term查询
term是表达语义的最小单位,在搜索的时候基本都要使用到term,精确查询,不会分词。
term查询的种类有:Term Query、Terms Query、Range Query等。
Term Query: 查单个字段 匹配单个单词
Terms Query: 查单个字段 匹配多个单词
Range Query: 范围查询
Constant Score: 将查询转换为一个filter,避免算分,利用缓存
在ES中,Term查询不会对输入进行分词处理,将输入作为一个整体,在倒排索引中查找准确的词项。 我们也可以使用 Constant Score 将查询转换为一个filter,避免算分,利用缓存,提高查询的效率。
1.1.1 term 与 terms
# 查movies所有记录
GET movies/_search
# query term查询
# 查单个字段 匹配单个单词
# 查询电影名字中包含有 beautiful 这个单词的所有的电影,用于查询的单词不会进行分词的处理
GET movies/_search
{
"query": {
"term": {
"title": {
"value": "beautiful"
}
}
}
}
# query terms查询
# 查单个字段 匹配多个单词
# 查询电影名字中包含有 beautiful 或者 mind 这两个单词的所有的电影,用于查询的单词不会进行 分词的处理
GET movies/_search
{
"query": {
"terms": {
"title": [
"beautiful",
"mind"
]
}
}
}
1.1.2 range 范围查询
# 查询上映在2016到2018年的所有的电影,再根据上映时间的倒序进行排序 desc / asc
GET movies/_search
{
"query": {
"range": {
"year": {
"gte": 2016,
"lte": 2018
}
}
}
,"sort": [
{
"year": {
"order": "desc"
}
}
]
}
GET movies/_search
{
"query": {
"bool": {
"must": [
{
"range": {
"lastchecktime": {
"gte": "2022-07-01 16:14:00"
}
}
}
]
}
}
}
1.1.3 Constant Score
# 查询title中包含有beautiful的所有的电影,不进行相关性算分,查询的数据进行缓存,提高效率
GET movies/_search
{
"query": {
"constant_score": {
"filter": {
"term": {
"title": "beautiful"
}
}
}
}
}
1.2 全文查询
全文查询的种类有: Match Query、Match Phrase Query、Query String Query等
Match Query: 查单个字段 匹配单个或多个单词
Match Phrase Query:
Query String Query:
索引和搜索的时候都会进行分词,在查询的时候,会对输入进行分词,然后每个词项会逐个到底层进行 查询,将最终的结果进行合并
1.2.1 match
# 查询电影名字中包含有beautiful的所有电影,每页十条,取第二页的数据
GET movies/_search
{
"query": {
"match": {
"title": "beautiful"
}
},
"size": 10,
"from": 10
}
# 查询电影名字中包含有beautiful的所有电影
# 用关键词查询,keyword会不分词,会区分大小写,
# 每页十条,取第一页的数据
GET movies/_search
{
"query": {
"match": {
"title.keyword": "Beautiful"
}
},
"size": 10,
"from": 0
}
# 查询电影名字中包含有 beautiful 或者 mind 的所有的数据,但是只查询title和id两个属性
GET movies/_search
{
"_source": ["id","title"],
"query": {
"match": {
"title": "beautiful mind"
}
}
}
# query match查询
GET /test1/_search
{
"query": {
"match": {
"name.keyword": "haima"
}
}
}
# 前置匹配
GET /test1/_search
{
"query": {
"prefix": {
"name.keyword": {
"value": "hai"
}
}
}
}
# filter
GET /test1/_search
{
"query": {
"bool": {
"must": [
{
"term": {
"name.keyword": "haima"
}
}
],
"filter": [
{
"term": {
"name.keyword": "haima"
}
}
]
}
}
}
GET /test1/_search
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
],
"filter": [
{
"ids": {
"values": [
"1"
]
}
}
]
}
}
}
GET /kibana_sample_data_flights/_search
{
"query": {
"bool":{
"filter":{
"term":{
"DestCountry":"CN"
}
}
}
},
"aggs": {
"agg_OriginWeather": {
"terms": {
"field":"OriginWeather",
"size": 10
}
},
"agg_DestCityName": {
"terms": {
"field":"DestCityName",
"size": 10
}
}
},
"size": 1
}
# 分词器
GET _analyze
{
"analyzer":"ik_smart",
"text": "我是中国人"
}
GET _analyze
{
"analyzer":"ik_max_word",
"text": "我是中国人"
}
GET _analyze
{
"analyzer":"ik_max_word",
"text":"狂神说java"
}
PUT /test2
{
"mappings": {
"_doc": {
"properties": {
"name": {
"type": "text"
},
"age": {
"type": "long"
},
"birthday": {
"type": "date"
}
}
}
}
}
# 时间类型
PUT /test2
{
"mappings": {
"properties": {
"date": {
"type": "date",
"format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd ||HH:mm:ss ||epoch_millis"
}
}
}
}
GET /test2/_mapping?pretty
# 获取所有
GET /test2/_doc/_search
# 获取所有
POST /test2/_search
{
"query": {
"match_all": {}
}
}
DELETE test2
POST _bulk
{"index":{"_index":"test2","_type":"_doc","_id":1}}
{ "date": "2022-01-02" }
{"index":{"_index":"test2","_type":"_doc","_id":2}}
{ "date": "12:00:00" }
{"index":{"_index":"test2","_type":"_doc","_id":3}}
{ "date": "1420070400001" }
{"index":{"_index":"test2","_type":"_doc","_id":4}}
{ "date": "2018-10-01 12:00:00" }
elasticsearch02-Request Body深入搜索的更多相关文章
- 一步步开发自己的博客 .NET版(5、Lucenne.Net 和 必应站内搜索)
前言 这次开发的博客主要功能或特点: 第一:可以兼容各终端,特别是手机端. 第二:到时会用到大量html5,炫啊. 第三:导入博客园的精华文章,并做分类.(不要封我) 第四:做 ...
- ASP搜索查询
html code: <form name="frm_Search" method="get" action="Search.asp" ...
- Android Api 27 在 Android 8.0 上出现 Only fullscreen opaque activities can request orientation 的解决情况
刚上班,没有业务开发,对 App 的 Api 由 26 升级到了 27, 结果在 Android 8.0 的设备上会出现 crash . Log 如下: java java.lang.IllegalS ...
- iOS高德地图使用-搜索,路径规划
项目中想加入地图功能,使用高德地图第三方,想要实现确定一个位置,搜索路线并且显示的方法.耗了一番功夫,总算实现了. 效果 WeChat_1462507820.jpeg 一.配置工作 1.申请key 访 ...
- datagrid在MVC中的运用02-结合搜索
本文接着上一篇,来体验给datagrid加上搜索功能.主要涉及到: ※ 把一个div与datagrid相关起来 ※ datagrid接收查询参数 ※ 查询参数的封装 效果图: 查询参数封装 分页相关的 ...
- stark组件(11):组合搜索
效果图: 新增函数和类 Option 获取字段的对象或元组 SearchGroupRow 封装数据,展示到前端 get_search_group 获取组合搜索的字段 get_search_group_ ...
- Django项目:CRM(客户关系管理系统)--26--18PerfectCRM实现King_admin搜索关键字
search_fields = ('name','qq',) 登陆密码设置参考 http://www.cnblogs.com/ujq3/p/8553784.html search_fields = ( ...
- Elasticsearch 搜索API
章节 Elasticsearch 基本概念 Elasticsearch 安装 Elasticsearch 使用集群 Elasticsearch 健康检查 Elasticsearch 列出索引 Elas ...
- 使用elasticsearch搭建自己的搜索系统
什么是elasticsearch Elasticsearch 是一个开源的高度可扩展的全文搜索和分析引擎,拥有查询近实时的超强性能. 大名鼎鼎的Lucene 搜索引擎被广泛用于搜索领域,但是操作复杂繁 ...
- 专业5 laravel框架添加,删除,恢复,分页,搜索接口
//////////////////////资源路由 //商品资源路由恢复Route::get('/restore/{id}','goodController@restore');//商品资源路由添加 ...
随机推荐
- MVC架构设计浅析(WEB网页开发)
MVC架构设计浅析 杨传伟 (石家庄铁道大学信息科学与技术学院,河北省,石家庄市,050043) 摘 要:本文以图书管理系统为案例(当前主流框架SpringMVC的原理来分析MVC的设计理念等),深入 ...
- 【WCH以太网接口系列芯片】CH9121\9120、CH395\392以太网系列芯片的硬件电路注意事项
本篇基于沁恒微电子官方的以太网接口芯片的DEMO参考原理图进行分析,对一些注意事项进行标注,如果硬件设计上出现问题可以对照参考. CH912x系列: 1.CH9121:建议设计中可以将31脚RUN脚预 ...
- 新前言with留言板
旧博客也是会用的,但是现在只用博客园写博客,平时csdn的东西也会凑凑热闹 欢迎各位julao来留言板留言 /* ID:lemondi1 LANG:C++ TASK:test */ #include ...
- Python拷贝、移动、重命名、删除文件和文件夹----shutil
拷贝 # 拷贝文件import shutil # 语法: shutil.copy(src, dst) '''示例 将 a 文件夹中的 a.txt 拷贝到 b 文件夹 ''' shutil.copy(' ...
- 部署iis7和vs2010低版本项目遇到的一些问题
前提 本人一直用iis10然后用的是vs2015,项目框架也用的是高版本的,所以后来接触了一个项目,部署iis7遇到的一些问题,按顺序总结出来,希望有所帮助. 正文 按顺序来: 1.HTTP错误 40 ...
- eclipse 卡顿的优化办法
1. 关闭校验 2. 关闭插件自动升级 3.关闭界面设置的一些选项
- vue2.0中watch用法
watch:观测Vue实例上的数据变动,对应一个对象,键:就是需要监测的那个东西,值:1.可以是当键变化时执行的函数,有两个参数,第一个是变化前的值,第二个是变化后的值.2.可以是函数名,得用单引号包 ...
- 记一次WPF的DataGrid绑定数据
之前一直在用winform,但是感觉界面不好看,然后就自己在网上学习WPF.一开始看到DataGrid的时候,还以为它是DataGridView,然后用winform的方法绑定数据发现不行,在不断的查 ...
- 力扣15(Java)-三数之和(中等)
题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j.i != k 且 j != k ,同时还满足 nums[i] + ...
- 力扣1083(MySQL)-销售分析Ⅲ(简单)
题目: Table: Product Table: Sales 编写一个SQL查询,报告2019年春季才售出的产品.即仅在2019-01-01至2019-03-31(含)之间出售的商品. 以 任意顺序 ...