es Elasticsearch 十二 Es 搜索入门 Query stirng search 查询短语搜索 Query string 基础语法 query DSL Scroll 分批查询 滚动搜索

21 篇文章 5 订阅
订阅专栏

目录

Ess 搜索入门

Query stirng search 查询短语搜索

超时机制

Multi-index 多索引搜索

分页搜索

Query string 基础语法

正向搜索

逆向搜索

_all全查 不指定字段直接查询匹配

query DSL

//全文检索简单写法

相关度评分算法

Dsl语法

过滤器增加查询条件 不参与匹配评分 filter

查询计划 可用来定位错误语法

只过滤不搜索

过滤后自定义排序

Text字段排序问题

Scroll 分批查询 滚动搜索技术

一分钟搜索

第一排完后有一个 _scroll_id 之后的查询带上这个id查询

Scoll 应用场景


Ess 搜索入门

Query stirng search 查询短语搜索

Get book/_search

Took 耗时

Timed_out 是否超时

_shards 到几个分片搜索 成功几个跳过几个失败几个

Hits.total 查询结果数量

Max_score 最高分

Hits 数据

_source 查询相关度分

Hits.hits 详细数据

//加查询条件

get /myindex/_search?q=tccsssse=中

//加排序

get /myindex/_search?q=tccsssse=is&sort=tccsssse:desc

超时机制

一亿数据 1小时查完  设置超时1毫秒  ,查询1毫秒插到10调数据直接返回

  1. 搜索时候,请求必定跨所有主分片
  2. 数据量太大时候,搜索完毕每个分片需要一个多小时
  3. 用户不相等,丢失业务
    1. &timeout=10ms

也可以增加全局设置 超时机制,特殊情况设置 不常用

 

 

Timeout机制

指定每个shard智能再给定时间内查询数据,能有几条就返回几条返回给客户端保住业务保住客户

 

Multi-index 多索引搜索

多索引搜索逗号隔开

get myindex,test/_search?q=name:中

多索引统一前缀

get myindex*/_search?q=name=zz

例如日志数据每天存储数据

存储的时候统一浅醉,日志按照日期分开

搜索实现流程

客户端发送一个搜索请求,会把请求达到所有的主分片上查询,

因为每个主分片上都有一部分数据,每个主分片同时搜索

当让如果有副本,也会到副本分片上查询

如果发现主分片特别繁忙会分发到副本分片上搜索

分页搜索

delete myindex



put /myindex/_doc/32222222312

{"name":"ss this is the ","age":"ccss"}







get /myindex/_search

from 从什么位置开始 size 几条

get /myindex/_search?size=2&from=0

es deep paging 深度 分页实现原理

因为如果每次查询如果选的数据少如10调 第一节点最高是另外一个最低1000后的值

这样分页是错误的,所以使用如下方式

每个节点将前10000条数据发给协调节点,协调节点分析值返回客户,就是性能较差

建议减少使用深度分页

Query string 基础语法

正向搜索

Get /myindex/_search?q=+name:张

逆向搜索

条件key 后加=-值

get /myindex/_search?q=-name:张

_all全查 不指定字段直接查询匹配

get /myindex/_search?q=张

query DSL


get /myindex/_search

{

       “query”:{

              “bool”:{

       “must”:[

       {“match”:{

       “description”:”中国话“

}}

]

}

}

}

 

Must 符合的

Should 应该符合的

Must_not 不符合的

//全文检索简单写法

get /myindex/_search

{

       “query”:{

 “match”:{

“description”:”中国话“

}

}

}

相关度评分算法

数据先分词,插入的时候分出词

倒排索引搜索关键词

通过搜索的分词 和存储的分词进行校验

命中词次数高的得分高

Dsl语法

全文查询

Get /myindex/_search

{

       “query”:{

“match_all”:{}

}

}

//查询某几个字段

Get /myindex/_search

{

       “query”:{

“multi_match”:{

    “query”:”程序员”,

    “fields”:[“name”,”age”]

}

}

}

范围查询range gte 大于 lte 小于

Get /myindex/_search

{

       “query”:{

“range”:{

    “price”:{

       “gte”:80,

       “lte”90

}

}

}

}

Term query 不分词 查询

Get /myindex/_search

{

       “query”:{

“term”:{

    “name”:”张三”

}

}

}

Terms 多值 不分词查询

Get /myindex/_search

{

       “query”:{

“terms”:{

    “name” : [”张三”,”小乔”,”赵云”]

}

}

}

Exist query 查询有这个字段的文档

Get /myindex/_search

{

       “query”:{

“exists”:{

    “field”:”name”

}

}

}

Fuzzy query 查询包含与搜索次类似的词 相似匹配

 

通过相似词作为度量级别

搜索错词但是出现正确相近内容

Get /myindex/_search

{

       “query”:{

“fuzzy”:{

    “name”:{

           “value”:”亮诸葛”

}

}

}

}

Ids 查询 多个文档返回

Get /myindex/_search

{

       “query”:{

“ids”:{

    “values”:[“1”,”8”,”99”]

}

}

}

前缀查询

Get /myindex/_search

{

       “query”:{

“prefix”:{

    “name”:{

       “values”:”张”

}

   

}

}

}

Range query 正则查询

Get /myindex/_search

{

       “query”:{

“regexp”:{

    “name”:{

       “values”:”j.*a”,

       “flags”:”ALL”,

       “max_determinized_states”:10000,

       “rewrite”:”constant_score”

}

   

}

}

}

J开头 结尾

过滤器增加查询条件 不参与匹配评分 filter

通过查询条件查出数据,再过滤数据

Get /myindex/_search

{

       “query”:{

“bool”:{

       “must”:[

       {

       “match”:{“name”:”张”}

}

],

Filter:{

       “range”:{

              “price”:{

       “gte”:50,

       “lte”:99

}

}

}



   

}

}

}

查询计划 可用来定位错误语法

Get /myindex/_validate/query?explain

{

“query”:{

       “match”:{

       “name”:”敦煌”

}

}

}

只过滤不搜索

Get myindex/_search

{

       “query”:{

       “constant_source”:{

              “filter”:{

       “term”:{

              “name”:”王”

}

}

}

}

}

过滤后自定义排序

Get myindex/_search
{
	“query”:{
	“constant_source”:{
		“filter”:{
	“term”:{
		“name”:”王”
}
}
}
},
“sort”:[
	{
	“age”:{
	“order”:”desc”
}
}
]
}

Text字段排序问题

插入数据是按照分词插入的所以不能直接排序

插入数据

Get /myindex/_search

{

       “query”:{

              “match_all”:””

},“sort”:[

       {“title”:{“order”:”desc”}} 

]

}

解决方案

增加值字段规则

 

在创建mapping的时候增加一个字段

Name:{

       Type:”text”,

       Fields:”{

       “type”:”keyword”

}



}

可解决排序,但是无法分词了

查询写法

 

Get /myindex/_search

{

       “query”:{

              “match_all”:””

},“sort”:[

       {“title.keyword”:{“order”:”desc”}} 

]

}

Scroll 分批查询 滚动搜索技术

通过第一次搜索快照,每次分批返回,在时间范围内完成搜索即可

一分钟搜索

Get /myindex/_search?scroll=1m

{

       “query”:{

       “match_all”:{}

},

“size”:1

}

第一排完后有一个 _scroll_id 之后的查询带上这个id查询

Get /_search?scroll

{

       “scroll”:”1m”

       “scrool_id”:”xxx”

}

 

之后每次都带上这个id即可

分页查询

一般就查前几页

Scoll 应用场景

Scroll 一般是内部用户操作 如 数据转移,零停机改变索引数据转移

ok

持续更新

写文章

热门文章

  • wireshark 抓取指定ip 21697
  • java.lang.IllegalStateException: Detected both log4j-over-slf4j.jar AND bound slf4j-log4j12.jar on t 20563
  • 几种加密方式 19706
  • java 《十二》生成json 文件保存到本地 18477
  • spring boot 配置多个Filter过滤器 18393

分类专栏

  • javascript java 超大文件 分片上传 付费 2篇
  • 程序员初中级升级到高级课程 5篇
  • 企业管理相关 2篇
  • java 137篇
  • elasticsearch es 21篇
  • 并发多线程 7篇
  • kafka 8篇
  • spring boot 17篇
  • netty 7篇
  • mysql 14篇
  • ShardingSpere 1篇
  • dubbo prometheus grafana 12篇
  • java jvm 12篇
  • 语言 无限未来 可能 1篇
  • javascript网页保存图片 1篇
  • java后台快速转型android 4篇
  • 目录树生成技术实例代码 1篇
  • 人工智能 2篇
  • mongodb 4篇
  • 大数据 3篇
  • 爬虫 2篇
  • python 5篇
  • redis 8篇
  • 地图转图片 2篇
  • red 1篇
  • jquery 18篇
  • mongodb复制集 1篇
  • tomcat 5篇
  • tomcat 调优 1篇
  • 网络协议 2篇
  • spring cloud 6篇
  • oracle 4篇
  • 地图 2篇
  • map 2篇
  • 事物 1篇
  • nginx 7篇
  • jvm调优 6篇
  • js 16篇
  • c++ 1篇
  • 程序人生 1篇
  • 数据库 1篇
  • ETL kettle 1篇
  • hadoop 6篇
  • maven 6篇
  • 项目经理职责 1篇
  • 面试介绍 1篇
  • 视频教程 4篇
  • 消息列队 发布订阅 1篇
  • svn 2篇
  • 运维 2篇
  • natapp 1篇
  • 开发安全方案 3篇
  • servlet 1篇
  • 加密算法 1篇
  • 文件服务器 1篇
  • log 1篇
  • spring 5篇
  • log4j 2篇
  • https 2篇
  • ssl 2篇
  • wireshark 1篇
  • 三十六计 1篇
  • 超大文件上传
  • serlvet9大内置对象 1篇
  • join 1篇
  • springboot 12篇
  • linux 13篇
  • docker 1篇
  • contos 1篇
  • 区块链 1篇
  • android 4篇
  • webview 1篇
  • 混合开发 1篇
  • 用户登录 1篇
  • 记录用户信息 1篇
  • html 13篇
  • 网站结构模板
  • css 1篇
  • jvm 10篇
  • bean 2篇
  • spring  1篇
  • ioc 1篇
  • di 1篇
  • spring ioc 源码解读 1篇
  • aop 1篇
  • api 1篇
  • class 1篇
  • equels 1篇
  • andiroid 1篇
  • activiy 1篇
  • im 1篇
  • andorid 1篇
  • sms 1篇
  • alipay 1篇
  • 优化 1篇
  • mysql 优化 1篇
  • mysql优化 5篇
  • msyql 1篇
  • 分布式锁
  • java设计模式 1篇
  • postgresql 2篇
  • git 1篇
  • eclipse 1篇
  • 测试工具 1篇
  • jmeter 1篇
  • 游戏 6篇
  • solr 1篇
  • 查询 1篇
  • nifo 1篇
  • canvas 6篇
  • io 3篇
  • 多线程 1篇
  • websocket
  • 压力测试 1篇
  • uuid 1篇
  • 唯一id 1篇
  • 自建文件服务器唯一id
  • 即时通讯
  • jvm 
  • jvm优化
  • jquery.md5.js 1篇
  • md5加密
  • jsontoxml 1篇
  • xmlweb访问
  • 发布xml服务
  • json 1篇
  • xml 1篇
  • linux 搭建hadoop 1篇
  • 写入文件
  • poi 1篇
  • html导出word 1篇
  • httpclent 1篇
  • 消息中转 1篇
  • javascript 1篇
  • 小游戏
  • 疯狂管道鸟
  • 飞机大战游戏策略 1篇
  • 算法 1篇
  • 二叉树 1篇
  • httpwatch 1篇
  • 网络分析工具 1篇
  • mybatis 2篇
  • 多数据源 2篇
  • 清空linux 缓存 1篇
  • 初始化启动 1篇
  • json转xml
  • table 4篇
  • table样式 1篇
  • javascipt
  • js多条件查询
  • jqeruy 1篇
  • 布局 2篇
  • 自适应 1篇
  • 滚动条
  • html  4篇
  • 轮播图 2篇
  • excel 3篇
  • 下载 1篇
  • nifi 3篇
  • ExecuteScript 2篇
  • 转换
  • raw 1篇
  • http 1篇
  • yum 1篇
  • amq 1篇
  • centos 1篇
  • 导出excel 1篇
  • 网络 1篇
  • linux 配置 网络 1篇
  • gp 1篇
  • base64 1篇
  • rsa 1篇
  • 加密 2篇
  • 解密 1篇
  • 加签
  • 验签
  • 生成公钥秘钥

最新评论

  • Jvm jmx_exporter Prometheus dubbo Grafana 重点看端口要对应上 单独进程和程序进程内jmx_exporter

    2301_78455642: 单独启动模式,Springboot项目必须要添加那些jvm启动参数吗

  • java WebDriver + selenium 调用 谷歌驱动 chromedriver 实现 在 liunx 环境下 无界面 截图 加自动获取页面最大真实页面内容高宽 加各类型踩坑日记

    何冽冽同学: //生成无头浏览器 driver = new ChromeDriver(service, chromeOptions);,这个driver一直是空,ChromeDriver(service, chromeOptions)没有生效,这个大概是哪的问题呀

  • java WebDriver + selenium 调用 谷歌驱动 chromedriver 实现 在 liunx 环境下 无界面 截图 加自动获取页面最大真实页面内容高宽 加各类型踩坑日记

    点点滴滴_: 需要登录验证的怎么截取呢

  • netty 集群 多线程处理 通道校验 统一数据 server 加模拟mq

    宇神城主_蒋浩宇: //增加测试实例 //js原生请求方法 function ajax(url,num){ var xhr = new XMLHttpRequest(); xhr.open('GET',url); xhr.send(); xhr.onreadystatechange = function(){ console.log(num+' '+xhr.response); } } //测试运行 for (var i=0;i<1000;i++) { ajax('http:localhost:9000/api/sum',i); }

  • netty 集群 多线程处理 通道校验 统一数据 server 加模拟mq

    宇神城主_蒋浩宇: for (var i=0;i<1000;i++) { ajax('http:localhost:9000/api/sum'); }

大家在看

  • Scala中map foreach函数
  • Scala中fitter flatten函数
  • 学籍终于更新啦
  • 安全之图像威胁(Security Image Threats) 333
  • 基于ssm+vue个性化大学生图书推荐系统(开题报告+程序+论文+java)

最新文章

  • jvm gc回收器 和 jvm 数据结构
  • netty 集群 多线程处理 通道校验 统一数据 server 加模拟mq
  • dubbo 异步调用 RpcContext 实现 和 AsyncContext 实现 示例
2023年63篇
2022年2篇
2021年21篇
2020年25篇
2019年127篇
2018年134篇

目录

目录

分类专栏

目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳坪山网站建设公司新建网站如何做优化许昌关键词网站优化平台网站排名优化皆选金苹果网站关键词优化要多久常德网站优化服务网站推广优化哪家价格便宜贵州百度网站优化青岛智能营销网站优化灵武网站优化排名如何优化一个网站关键词起亚车机优化网站宝安网站关键词优化公司优化网站怎么培训揭阳网站优化在线咨询优化网站都包括哪些方面昆山网站优化建设宁夏网站优化推广公司哪个好南通网站排名优化沈阳网站制作优化技巧资讯类网站怎么做优化绍兴网站搜索优化网站搜索引擎优化工作内容温州网站站内优化鹤壁外贸网站优化价格谷歌怎么优化网站松江区优化网站价格网站优化纯文本外链如何选择优化公司网站推广秦皇岛优化网站公司什么类型网站模板容易优化香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化