1.Query DSL入门 1.1 DSL DSL:Domain Specified Language,特定领域的语言.es特有的搜索语言,可在请求体中携带搜索条件,功能强大. 查询全部 GET /book/_search { "query": { "match_all": {} } } 排序 GET /book/_search {   "query" : {       "match" : {           "…
1.算法介绍 relevance score(相关性分数) 算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度.Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法.TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency) 1.1 Term frequency 搜索文本中的各个词条在field文本中出现了多少次,出…
大纲: WAF防护原理讲解 目录扫描绕过WAF 手工注入绕过WAF sqlmap绕过WAF 编写salmap绕过WAF 过WAF一句话编写讲解 菜刀连接绕过WAF webshell上传绕过WAF 提权绕过WAF WAF绕过原理详解 知己知彼百战百胜 了解WAF防护原理 查看WAF防护位置 熟悉防护规则 了解防护机制 查看拦截时间阀值 目录扫描绕过WAF 两种方式: 1.修改客户端IP 2.减慢扫描速度 3.通过代理欺骗WAF 手工注入绕过WAF 搭建测试环境 了解绕过原理 熟悉常见绕过构造语句…
1.Doc value 搜索的时候,要依靠倒排索引: 排序的时候,需要依靠正排索引,看到每个document的每个field,然后进行排序. 所谓的正排索引,其实就是doc values. 在建立索引的时候,一方面会建立倒排索引,以供搜索用:一方面会建立正排索引,也就是doc values,以供排序,聚合,过滤等操作使用,doc values是被保存在磁盘上的,此时如果内存足够,os会自动将其缓存在内存中,性能还是会很高:如果内存不足够,os会将其写入磁盘上 1.1 倒排索引 doc1: hel…
1.preference 首先引入一个bouncing results问题,两个document排序,field值相同:不同的shard上,可能排序不同:每次请求轮询打到不同的replica shard上:每次页面上看到的搜索结果的排序都不一样.这就是bouncing result,也就是跳跃的结果. 这个问题出现最多的地方就是timestamp进行排序,如下图所示,可能导致每次返回的结果不一致. 比如当你使用一个timestamp字段对结果进行排序,因为es中时间格式为%Y-%m-%d,那么同…
一.引言 写完上一篇有关redis使用lua脚本的文章,就有意结束Redis这个系列的文章了,当然了,这里的结束只是我这个系列的结束,但是要学的东西还有很多.但是,好多天过去了,总是感觉好像还缺点什么.突然眼前一亮,明白了,写了这么多关于Redis的文章,居然还没有写它的配置文件是如何配置管理的,这样可不行,做事要有始有终吧,决定再写一篇,作为Redis系列的结尾篇,也就是今天的这篇文章.好了,我们开始今天的讨论吧. 二.redis.conf配置详解 我把redis.conf的配置文件整体翻译一…
一.数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price": { "type": "long" }, "color": { "type": "keyword" }, "brand": { "type": "k…
1.Text字段排序 场景:数据库中按照某个字段排序,sql只需写order by 字段名即可,如果es对一个text field进行排序,es中无法排序.因为文档入倒排索引表时,分词存入,es无法知道此字段的真实值.这样的结果往往不准确,因为分词后是多个单词,再排序就不是我们想要的结果了. 通常有两种解决办法: 将一个text field建立两次索引,一个分词,用来进行搜索:一个不分词,用来进行排序. mapping时设置fielddata:true,按照第一个分词进行字典序排序.这种方式也不…
一.电视案例 1.1 数据准备 创建索引及映射 建立价格.颜色.品牌.售卖日期 字段 PUT /tvs PUT /tvs/_mapping { "properties": { "price": { "type": "long" }, "color": { "type": "keyword" }, "brand": { "type"…
简介 为了验证用户登录情况以及减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮.有些登录不是用 cookie 来验证的,是用 token 参数来判断是否登录.token 传参有两种一种是放在请求头里,本质上是跟 cookie 是一样的,只 是换个单词而已:另外一种是在 url 请求参数里,这种更直观. 登录返回token 1.如下图的这个登录接口,就是没有 cookies的登录接口. 2.但是这个登录接口,登录成功后有返回token,如下图 请求头带token 1.登录成功后继续操作其它…