利用kibana插件对Elasticsearch查询

Elasticsearch是功能非常强大的搜索引擎,使用它的目的就是为了快速的查询到需要的数据。

查询分类:

  基本查询:使用Elasticsearch内置查询条件进行查询

  组合查询:把多个查询组合在一起进行复合查询

  过滤:查询同时,通过filter条件在不影响打分的情况下筛选数据

创建索引
PUT lagou
{
"mappings": {
"job":{
"properties": {
"title":{
"store": true,
"type": "text",
"analyzer": "ik_max_word"
},
"company_name":{
"store": true,
"type": "keyword"
},
"desc":{
"type": "text"
},
"comments":{
"type": "integer"
},
"add_time":{
"type": "date",
"format": "yyyy-MM-dd"
}
}
}
}
}

PUT lagou

POST lagou/job
{
  "title":"python django 开发工程师",
  "company_name":"美团",
  "desc":"美团是一个在吗在吗在吗",
  "comments":20,
  "add_time":"2017-4-16"
}

POST lagou/job
{
  "title":"python 爬虫 开发工程师",
  "company_name":"数据冰山",
  "desc":"专门找数据的一家公司 python",
  "comments":15,
  "add_time":"2016-4-16"
}
POST lagou/job
{
  "title":"django 后端 开发工程师",
  "company_name":"百度科技有限公司",
  "desc":"我也不知道这里应该写一点什么东西了 python",
  "comments":20,
  "add_time":"2017-4-16"
}
POST lagou/job
{
  "title":"python GUI  开发工程师",
  "company_name":"熊猫",
  "desc":"在线视频教育python",
  "comments":6,
  "add_time":"2017-4-16"
}

#match查询,

对我们的输入进行一个分词,指明一个字段,会去找这个字段有没有我们写的这个关键词,关键词不区分大小写,在做分词的时候会自动对大小写进行转换

GET lagou/_search
GET lagou/job/_search
{
"query": {
"match": {
"title": "爬取"
}
}
}

#term查询#

传递过来的关键词不会进行任何处理不会解析,text 会分词,keyword不会分词的

GET lagou/job/_search
{
"query": {
"term": {
"company_name": "百度科技有限公司"
}
}
}

#terms查询

只要关键字中有一个都会匹配出来

GET lagou/job/_search
{
"query": {
"terms": {
"title": ["django","开发","python"]
}
}
}

#控制查询的返回数量

GET lagou/_search
{
"query": {
"match": {
"title": "python"
}
},
"from": ,
"size":
}

#从哪开始,数量多少

#match——all  查询

GET lagou/job/_search
{
"query": {
"match_all": {}
}
}

#match_phrase查询#短语查询

#slop 两词之间最小的距离,query 必须都满足所有的分词的关键词

GET lagou/_search
{
"query": {
"match_phrase": {
"title": {
"query": "python django",
"slop":
}
}
}
}

#multi_match查询#

比如可以指定多个字段#比如查询title和desc这两个字段里面包含python 的关键词的文档GET lagou/job/_search     
#     ^3   指的是权重,什么比什么的权重高多少

GET lagou/_search
{
"query": {
"multi_match": {
"query": "python",
"fields": ["title","desc^3"]
}
}
}

#指定返回的字段

GET lagou/_search
{
"stored_fields": ["title"],
"query": {
"match": {
"title": "开发"
}
}
}

#通过sort把结果排序

GET lagou/_search
{
"query": {
"match_all": {}
},
"sort": [
{
"comments": {
"order": "desc"
}
}
]
}

#范围查询#range查询

GET lagou/_search
{
"query": {
"range": {
"comments": {
"gte": ,
"lte": ,
"boost": 2.0
}
}
}
}

#range查询

GET lagou/_search
{
"query": {
"range": {
"add_time": {
"gte": "2017-04-01",
"lte": "now"
}
}
}
}

#wildcard 查询#简单的模糊查询

GET lagou/_search
{
"query": {
"wildcard": {
"title": {
"value": "pyth*n",
"boost":
}
}
}
}

利用kibana插件对Elasticsearch查询的更多相关文章

  1. 利用kibana插件对Elasticsearch进行bool查询

    #bool查询#老版本的filtered查询已经被bool代替#用 bool包括 must should must_not filter来完成 ,格式如下:#bool:{#  "filter ...

  2. 利用kibana插件对Elasticsearch进行映射

    映射(mapping) 映射是创建索引的时候,可以预先定义字段的类型以及相关属性 Elasticsearch会根据JSON源数据的基础类型去猜测你想要的字段映射.将输入的数据变成可搜索的索引项.Map ...

  3. 利用kibana插件对Elasticsearch进行批量操作

    #############批量获取################# #获取所有数据 GET _mget { "docs": [ {"_index":" ...

  4. 利用kibana插件对Elasticsearch进行文档和索引的CRUD操作

    #添加索引PUT lagou { "settings": { "index": { , } } }#查看 索引设置 GET lagou/_settings GE ...

  5. 利用Logstash插件进行Elasticsearch与Mysql的数据

    Logstash与Elasticsearch的安装就不多说了,我之前有两篇文章写的比较详细了ElasticSearch + Logstash + Kibana 搭建笔记 和 Filebeat+Logs ...

  6. 利用kibana学习 elasticsearch restful api (DSL)

    利用kibana学习 elasticsearch restful api (DSL) 1.了解elasticsearch基本概念Index: databaseType: tableDocument: ...

  7. 使用kibana来进行ElasticSearch的信息查询检索

    大家经常会听到使用ELK搭建日志管理平台.完成日志聚合检索的功能,那么这个平台到底是个什么概念,怎么搭建,怎么使用呢? ELK包括ElasticSearch(数据存储.快速查询).logstash(日 ...

  8. Elasticsearch索引的操作,利用kibana(如何创建/删除一个es的索引?)

    我们已经通过索引一篇文档创建了一个新的索引 .这个索引采用的是默认的配置,新的字段通过动态映射的方式被添加到类型映射.现在我们需要对这个建立索引的过程做更多的控制:我们想要确保这个索引有数量适中的主分 ...

  9. Elasticsearch索引的操作,利用kibana 创建/删除一个es的索引及mapping映射

    索引的创建及删除 1. 通过索引一篇文档创建了一个新的索引 .这个索引采用的是默认的配置,新的字段通过动态映射的方式被添加到类型映射. 利用Kibana提供的DevTools来执行命令,要创建一个索引 ...

随机推荐

  1. Ext.Net的一例Ext Undefined解决办法

    在运行的产品里发现了一例Ext Undefined报错.经过仔细排查原因是一个Ext.net按钮控件前端显示部分使用了<% if()  <%> 动态控制输出Html脚本(有对应的后端 ...

  2. Oracle DB 总结(SQL)

    --SQL结构查询语言 数据库定义语言(DDL)用于建立.删除和修改数据库对象 CREATE ALTER DROP TRUNCATE 数据库操纵语言(DML)用于改变数据库表中的数据 INSERT U ...

  3. PHP代码审计之XSS操作

    XSS XSS是Cross Site Scripting(跨站脚本攻击), 它与sql注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除的目的,而在XSS攻击中,通过插入 ...

  4. react native 安卓home返回键页面刷新

    import { withNavigationFocus } from 'react-navigation'; class Warngreete extends React.Component { c ...

  5. 第31月第15天 -fembed-bitcode

    1. 确保打包的时候使用的是fembed-bitcode, 而不是fembed-bitcode-maker fembed-bitcode-maker:只是简单的标记一下在archive出来的二进制中b ...

  6. CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)错误解决方法

    1.停用mysql服务:# /etc/rc.d/init.d/mysqld stop 2.输入命令:# mysqld_safe --user=mysql --skip-grant-tables --s ...

  7. wireshark 抓包过滤器使用

    目录 wireshark 抓包过滤器 一.抓包过滤器 二.显示过滤器 整理自陈鑫杰老师的wireshark教程课 wireshark 抓包过滤器 过滤器分为抓包过滤器和显示过滤器,抓包过滤器会将不满足 ...

  8. ROS启动多launch文件

    在ROS工程中经常需要启动好几个launch文件,比较不方便,有下面两种方法可以更高效些: 重写一个大型的launch文件,将所有的节点的启动配置信息都包含进去. 通过bash写一个xxx.sh文件, ...

  9. Java字符串中常用字符占用字节数

    java中一个char型的数据(也就是一个字符)占两个字节.而Java中常用的字符包括数字.英文字母.英文符号.中文汉字.中文符号等,若在字符串中包含里面的多种字符,它们是否都占两个字符呢?答案是否定 ...

  10. 初学python之路-day12

    本篇补上字符串的比较:按照从左往右比较每一个字符,通过字符对应的ascii进行比较 一.函数默认值的细节 # 如果函数的默认参数的默认值为变量,在所属函数定义阶段一执行就被确定为当时变量存放的值 a ...