Query DSL:

request body:

分成两类:

query dsl:执行full-text查询时,基于相关度来评判其匹配结果;

查询执行过程复杂,且不会被缓存;

filter dsl:执行exact查询时,基于其结果为“yes”或“no”进行评判;

速度快,且结果缓存

查询语句的结构:

{
QUERY_NAME: {

AGGUMENT: VALUE,

ARGUMENT: VALUE,...
  }
}

{
  QUERY_NAME: {
  FIELD_NAME: {
  ARGUMENT: VALUE,...
  }
  }
}
filter dsl:

term filter:精确匹配包含指定term的文档;

The term query performs no analysis on the input text, so it will look for exactly the value that is supplied

{ "term": {"name": "Guo"} }

curl -XGET 'localhost:9200/students/_search?pretty' -d '{

"query": { "term": { "first_name": "jing" } }}' 在查询时这个j不能写成大些,不然查不到

terms filter:用于多值精确匹配;

{ "terms": { "name": ["Guo", "Rong"] }}

curl -XGET 'localhost:9200/students/_search?pretty' -d '{

"query": {

"terms": {

"age": [25,24,23]
  }
  }
}'

range filters:用于在指定的范围内查找数值或时间

curl -XGET 'localhost:9200/students/_search?pretty' -d '{

"query": {

"range": {

"age": {

"gte": 20,

"lt": 30
  }
  }
  }
}'

boolean filter:

基于boolean的逻辑来合并多个filter子句;

must:其内部所有的子句条件必须同时匹配,即and;

must: {
"term": { "age": 25 }

"term": { "gender": "Female" }
}

must_not:其所有子句必须不匹配,即not

must_not: {

"term": { "age": 25 }
}

should:至少有一个子句匹配,即or

should: {

"term": { "age": 25 }

"term": { "gender": "Female" }
}

QUERY DSL:

match_all Query:

用于匹配所有文档,没有指定任何query,默认即为match_all query

curl -XGET 'localhost:9200/students/_search?pretty' -d '{

"query": { "match_all": {} }}'

match Query:

在几乎任何域上执行full-text或exact-value查询

如果执行full-text查询:首先对查询时的语句做分析;

{ "match": {"students": "Guo" }}

如果执行exact-value查询:搜索精确值;此时,建议使用过滤,而非查询

curl -XGET 'localhost:9200/students/_search?pretty' -d '{

"query": { "match": { "first_name": "Rong,Jing" } }}'

multi_match Query:

用于在多个域上执行相同的查询

curl -XGET 'localhost:9200/students/_search?pretty' -d '{

"query": {

"multi_match": {

"query": "Rong,Jing",

"fields": [ "last_name","first_name" ]
  }
  }
}'

合并filter和query:

{
"filterd": {

query: { "match": {"gender": "Female"} }

filter: { "term": {"age": 25}}

  }
}

ELK stack的另外两个组件:

L: logstash

K: Kibina

Logstash:

支持多数据获取机制,通过TCP/UDP协议、文件、syslog、windows EventLogs及STDIN等;获取到数据后,它支持对数据执行过

滤、修改等操作

JRuby语言开发的,必须运行在JVM上,agent/server模型

logstash的安装,先去官网下载软件包,logstash-1.5.6-1.noarch.rpm,官网就是elasticsearch的官网

yum -y install logstash-1.5.6-1.noarch.rpm

默认logstash的命令程序装在了这个目录下/opt/logstash/bin/,因此 vim /etc/profile.d/logstash.sh

export PATH=/opt/logstash/bin:$PATH

exec bash

默认的配置文件为/etc/logstash/conf.d/目录下所有以.conf结尾的文件,默认此目录下不会有任何文件

创建一个简单的配置文件: vim sample.conf

input {

stdin{}

}

output {

stdout{

codec => rubydebug
  }
}

其中codec => rubydebug是固定格式,整段代码的意思是从标准输入读数据,输出至标准输出

logstash -f /etc/logstash/conf.d/sample.conf --configtest 此命令可以测试语法是否正确

logstash -f /etc/logstash/conf.d/sample.conf 运行程序 接下来输入一个hello 就可以看到JSON格式显示的信息

{

"message" => "hello",

"@version" => "1",

"@timestamp" => "2016-07-20T07:57:19.458Z",

"host" => "centos7"

}

logstash的基本配置框架:

input {

...

}

filter {

...

}

output {

...

}

Logstash的工作流程:input | filter | output, 如无需对数据进行额外处理,filter可省略

四种类型的插件:

input, filter, codec, output

数据类型:

Array:[item1, item2,...]

Boolean:true, false

Bytes:

Codec:编码器

Hash:key => value

Number:数值

Password:

Path:文件系统路径;

String:字符串

字段引用:[]

条件判断:
==, !=, <, <=, >, >=
=~, !~
in, not in
and, or
()

转载于:https://www.cnblogs.com/linuxboke/p/5688769.html

elasticsearch查询及logstash简介相关推荐

  1. LogStash 简介

    目录 1. 概述 2. 体系结构 2.1 插件 2.2 事件 2.2.1 访问事件属性 2.2.2 事件 API 2.3 队列 2.3.1 持久化队列 2.3.2 死信队列 3. 管道配置 3.1 主 ...

  2. 2021年大数据ELK(二十一):Logstash简介和安装

    全网最详细的大数据ELK文章系列,强烈建议收藏加关注! 新文章都已经列出历史文章目录,帮助大家回顾前面的知识重点. 目录 Logstash简介和安装 一.简介 1.经典架构 2.对比Flume 3.对 ...

  3. Ubuntu 20.04 搜索引擎环境搭建 (PostgreSQL 12.3, Redis 6, ELK[Elasticsearch 7.8, Logstash 7.8, Kibana 7.8])

    2021/02/04 更新redis安装步骤 在软件开发项目中,会遇到搜索引擎.日志收集等需求,本教程在阿里云选择公共镜像 Ubuntu 20.04 后,部署 apt-fast, java, axel ...

  4. ElasticSearch查询篇索引映射文档数据准备

    elasticsearch查询篇索引映射文档数据准备 我们后面要讲elasticsearch查询,先来准备下索引,映射以及文档: 我们先用Head插件建立索引film,然后建立映射 POST http ...

  5. elasticsearch查询篇

    这一讲,主要讲解如何用es的插件(head插件  smartcn插件) 和java代码实现es的查询.......这个章节很重要哦.....希望各位有耐心的看完下面的实例..... ========= ...

  6. elasticsearch 查询(match和term)

    elasticsearch 查询(match和term) es中的查询请求有两种方式,一种是简易版的查询,另外一种是使用JSON完整的请求体,叫做结构化查询(DSL). 由于DSL查询更为直观也更为简 ...

  7. es查询语句拼接 java_JAVA使用ElasticSearch查询in和not in的实现方式

    JAVA使用ElasticSearch查询in和not in的实现方式 发布时间:2020-08-22 16:03:11 来源:脚本之家 阅读:119 作者:执笔记忆的空白 ElasticSearch ...

  8. ElasticSearch查询 第四篇:匹配查询(Match)

    <ElasticSearch查询>目录导航: ElasticSearch查询 第一篇:搜索API ElasticSearch查询 第二篇:文档更新 ElasticSearch查询 第三篇: ...

  9. Elasticsearch查询性能优化

    constant_score的用处 当我们不关心检索词频率TF(Term Frequency)对搜索结果排序的影响时,可以使用constant_score将查询语句query或者过滤语句filter包 ...

最新文章

  1. java课堂测试样卷-----简易学籍管理系统
  2. 广东生态所孙蔚旻团队EST发表利用稳定同位素示踪-宏基因组分箱联用技术揭示砷污染土壤中的厌氧砷氧化微生物及其代谢途径...
  3. 华硕笔记本电池0%充不进电_笔记本电脑电池充不进电如何解决【解决方法】
  4. Docker镜像仓库清理的探索之路
  5. android 默认开关,android默认设置的开关
  6. VC INI文件读写 和 GetProfileString,WriteProfileString函数的使用
  7. tomcat-maven插件热部署(简洁版)
  8. 绑定控件中%#Eval()%和%=变量%的执行顺序
  9. 小程序代码压缩之js压缩
  10. 计算机金融sci,FINANCE AND STOCHASTICS《金融与随机分析》SSCI论文投稿_SSCI期刊大全_SSCI期刊点评_万维书刊网...
  11. iphone11主卡在上还是下
  12. 我是如何纯靠技术在大学月入上万,收获人生第一个10W
  13. 京东商城涉足电子书的醉翁之意
  14. 微信图片盗链php,微信公众号图片如何实现反防盗链接
  15. 从代码角度看CAN网络层协议 ISO 15765-2(一)
  16. C# 判断圆与矩形的冲突
  17. Endnote 参考文献格式设置:字体 字号 行距 悬挂缩进
  18. 这些职场道理不懂,你注定一辈子穷打工
  19. Android使用百度地图定位SDK在wifi下位置偏差
  20. Speedoffice(Word)怎样设置页眉页脚高度

热门文章

  1. Swift中的一致性哈希算法(补充)
  2. 桌面虚拟化对企业IT的四大贡献
  3. Pixysoft.Framework.Noebe.Socket 开发实录
  4. 人生必学的一课:成功的人就是会“勉强”别人的人
  5. Oracle条件查询语句-where
  6. 部署与管理ZooKeeper
  7. 线上服务CPU100%问题快速定位实战--转
  8. centos7下docker 部署javaweb
  9. Sendmail+dovecot+saslauth+rainloop
  10. Matlab中plot基本用法