Elasticsearch 过滤器
序
本文主要记录es的查询过滤的使用。
使用过滤器
过滤器不影响评分,而评分计算让搜索变得复杂,而且需要CPU资源,因而尽量使用过滤器,而且过滤器容易被缓存,进一步提升查询的整体性能。
post_filter(先查询再过滤)
{
"query": {
"match":{"title":"Catch-22"}
},
"post_filter":{
"term":{"year":}
}
}
filtered(先过滤再查询,速度快)
{
"query": {
"filtered": {
"query": {
"match": {
"title": "Catch-22"
}
},
"filter": {
"term": {
"year":
}
}
}
}
}
这种方式在2.2版本被废弃调用,改用bool的方式
{
"query": {
"bool": {
"must": {
"match": {
"title": "Catch-22"
}
},
"filter": {
"term": {
"year":
}
}
}
}
}
过滤器种类
范围过滤器
{
"post_filter":{
"range":{
"year":{
"gte":,
"lte":
}
}
}
}
exists过滤器
{
"post_filter":{
"exists":{
"field":"year"
}
}
}
missing过滤器
过滤掉给定字段有值或缺失的文档
{
"post_filter":{
"missing":{
"field":"year",
"null_value":,
"existence":true
}
}
}
脚本过滤器
过滤掉发表在一个世纪以前的书
{
"post_filter":{
"script":{
"script":"now - doc[‘year‘].value > 100",
"params":{"now":}
}
}
}
类型过滤器
当查询运行在多个索引上时,有用
{
"post_filter":{
"type":{
"value":"book"
}
}
}
限定过滤器
限定每个分片返回的文档数
{
"post_filter":{
"limit":{
"value":
}
}
}
标识符过滤器
比如要指定标识符为1,2,3的文档
{
"post_filter":{
"ids":{
"type":["book"],
"values":[,,]
}
}
}
组合过滤器
{
"query": {
"bool": {
"must": {
"range": {
"year": {
"gte": ,
"lte":
}
}
},
"should": {
"term": {
"available": true
}
},
"boost":
}
}
}
Elasticsearch 过滤器的更多相关文章
- Elasticsearch过滤器——filter
Elasticsearch中的所有的查询都会触发相关度得分的计算.对于那些我们不需要相关度得分的场景下,Elasticsearch以过滤器的形式提供了另一种查询功能.过滤器在概念上类似于查询,但是它们 ...
- elasticsearch 过滤器的种类
elasticsearch之查询过滤 elasticsearch elastic-search xixicat 2月13日发布 推荐 1 推荐 收藏 2 收藏,289 浏览 序 本文主要记录es的查询 ...
- elasticsearch filters特性
使用filters优化查询 ElasticSearch支持多种不同类型的查询方式,这一点大家应该都已熟知.但是在选择哪个文档应该匹配成功,哪个文档应该呈现给用户这一需求上,查询并不是唯一的选择.Ela ...
- elasticsearch5之Elastalert 安装使用 配置邮件报警和微信报警
简介 Elastalert是用python2写的一个报警框架(目前支持python2.6和2.7,不支持3.x),github地址为 https://github.com/Yelp/elastaler ...
- Elastalert安装及使用
如果在windows 64平台报错:执行 pip install python-magic-bin==0.4.14修复https://stackoverflow.com/questions/18374 ...
- elastalert
http://blog.51cto.com/kexiaoke/1977481 什么是? ElastAlert是一个简单的框架,用于从弹性搜索中的数据中提取异常,尖峰或其他感兴趣的模式.在Yelp,我们 ...
- ELK日志报警插件ElastAlert并配置钉钉报警
文章转载自:https://www.cnblogs.com/uglyliu/p/13118386.html ELK日志报警插件ElastAlert 它通过将Elasticsearch与两种类型的组件( ...
- ELK基于ElastAlert实现日志的微信报警
文章转载自:https://mp.weixin.qq.com/s/W9b28CFBEmxBPz5bGd1-hw 教程pdf文件下载地址 https://files.cnblogs.com/files/ ...
- 【转】elasticsearch的查询器query与过滤器filter的区别
很多刚学elasticsearch的人对于查询方面很是苦恼,说实话es的查询语法真心不简单- 当然你如果入门之后,会发现elasticsearch的rest api设计是多么有意思. 说正题,ela ...
随机推荐
- PHP开发中,让var_dump调试函数输出更美观 ^_^#
前提:php必须安装Xdebug模块. 用var_dump打印输出时,输出的内容没有被格式化.如下图: 通常使用var_dump打印的内容是被格式化后输出的,如下图: 造成没有格式化输出的原因是因为p ...
- phpVirtualBox – 用浏览器操作虚拟机
摘自:https://code.google.com phpVirtualBox 一个开源的,VirtualBox的用户界面,用PHP编写的AJAX实现.作为一个现代的Web界面,它允许你远程访问和控 ...
- ios开发之--多个按钮单选效果
开发项目时,有很多场景需要用到按钮单选效果,例如充值页面,选择标签页面等,具体实现代码如下: 1,创建 -(UIView *)headerView { CGFloat width = (Kscreen ...
- python是c语言开发的
python是c语言开发的. #c语言,没有字符串:字符串使用字符组表现 hello —五个字符 字符数组 [’h’,’e’,…’o’] 所以python中如果对一个字符串进行修改,就是在内存 ...
- MongoDB(三)-- 执行JS、界面工具
一.执行Js脚本 1.开启mongod服务 2.连接mongodb客户端,./mongo --host 192.168.80.128 --port 27017 3.创建数据库:use testdb1 ...
- Nginx(五)-- 配置文件之Rewrite
Rewrite支持URL重写 1.常用指令以及语法 1) if指令 if语法: if 空格 (condition) {} 条件: 1. “=” 来判断相等,用于字符的比较 ...
- hive异常:创建MySQL时Specified key was too long; max key length is 1000 bytes
2015-11-13 14:44:44,681 ERROR [main]: DataNucleus.Datastore (Log4JLogger.java:error(115)) - An excep ...
- php API接口入门
1.简述: api接口开发,其实和平时开发逻辑差不多:但是也有略微差异: 平时使用mvc开发网站的思路一般是都 由控制器 去 调用模型,模型返回数据,再由控制器把数据放到视图中,展现给用户: api开 ...
- 推荐系统之隐语义模型(LFM)
LFM(latent factor model)隐语义模型,这也是在推荐系统中应用相当普遍的一种模型.那这种模型跟ItemCF或UserCF的不同在于: 对于UserCF,我们可以先计算和目标用户兴趣 ...
- 【资源大全】.NET资源大全中文版(Awesome最新版)
算法与数据结构(Algorithms and Data structures) 应用程序接口(API) 应用程序框架(Application Frameworks) 模板引擎(Application ...