利用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": 1,
  "size": 3
}

#从哪开始,数量多少

#match——all  查询

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

#match_phrase查询#短语查询

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

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

#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": 10,
        "lte": 20,
        "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": 2
        }
      }
  }
}
时间: 2024-11-05 22:48:39

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

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

#bool查询#老版本的filtered查询已经被bool代替#用 bool包括 must should must_not filter来完成 ,格式如下:#bool:{#  "filter":[],#  "must":[],#  "should":[],#  "must_not"[],#}#must 数组内的所有查询都必须满足#should 数组内只需要满足一个#must_not 一个都不能满足 #建立测试数据 POST l

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

#############批量获取################# #获取所有数据 GET _mget { "docs": [ {"_index":"testdb", "_type":"job1", "_id":1 }, {"_index":"testdb", "_type":"job2", "_

elasticsearch安装kibana插件

1.下载 2.解压将解压后的文件放到D:\DevTools\kibana-4.6.0-windows-x86路径下 3.修改配置文件D:\DevTools\kibana-4.6.0-windows-x86\config目录下的kibana.yml,elasticsearch.url: ip与elasticsearch配置相同 4.启动 双击D:\DevTools\kibana-4.6.0-windows-x86\bin目录下的kibana.bat默认连接的是本机elasticsearch,可在配

利用AdvancedNewFile插件创建新的文件

与ctrl+N创建新的文件不同的是,利用AdvancedNewFile插件你可以直接创建并修改保存路径,不用保存之后在修改路径. 第一步,ctrl+shift+P 输入pci模糊查询package control install package 第二步:输入adv 找到AdvancedNewFile插件 点击安装. 第三步:安装完成之后,利用 ctrl+alt+N 快捷键,在编辑器下方输入框 输入你想创建的文件以及保存路径,你也可以不改路径,直接保存在默认路径,只需写你想要的文件.如图:

云上树莓派(2):将传感器数据上传到 AWS IoT 并利用Kibana进行展示

云上树莓派(1):环境准备 云上树莓派(2):将传感器数据上传到AWS IoT 并利用Kibana进行展示 1. 传感器安装及配置 1.1 DHT22 安装 DHT22 是一款温度与湿度传感器,它有3个针脚,左边的第一个引脚(#1)为3-5V电源,第二个引脚(#2)连接到数据输入引脚,最右边的引脚(#4)接地. 而树莓派3B 一共有40个针脚(GPIO,General Purpose I/O Ports,通用输入/输出端口),只需要将传感器的3个引脚接入板子上的合适引脚即可.我的连接是 1 -

利用jstree插件轻松构建树应用

利用jstree插件轻松构建树应用 最近完成了项目中的一个树状应用,第一次接触了jstree这个插件,总的来说它的官方文档还是比较详细的,但是在使用过程中还是出现了一些问题,下面我就来谈谈这款插件的使用和心得. 首先项目需要构建一棵树,利用jstree插件我们先在页面上静态的把这棵树渲染出来,参照官方文档(http://www.jstree.com/),代码如下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head&g

SSRS 2012 参数化报表 -- 利用拼接字符串来取代查询参数

SSRS 2012 参数化报表 -- 利用拼接字符串来取代查询参数 以上介绍过了如何在SQL Server中使用参数化查询,但是,如果遇到一些不支持参数化查询的数据库又该怎么办呢?此时,最终极的招数就是整个查询语句都通过参数化查询以拼接字符串的方式来产生. 举例来说,除了XML文件之外,SSRS也能够接收外部Web Services返回的数据集以产生报表.在以下的实例中,利用立陶宛国家银行所提供的实时汇率换算Web服务,它提供各种货币与立陶宛币(Litas)的汇率换算. 步骤1: 请将数据表拖拉

jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)

使用jQuery ui首先需要引入jQuery类库,jQuery ui js脚本和jQuery ui css样式表.代码示例如下: <script src="js/jquery-1.7.1.js"></script> <script src="js/jquery-ui-1.8.18.custom.min.js"></script> <link rel="stylesheet" type=&qu

Func&lt;T,T&gt;应用之Elasticsearch查询语句构造器的开发

前言 之前项目中做Elasticsearch相关开发的时候,虽然借助了第三方的组件PlainElastic.Net,但是由于当时不熟悉用法,而选择了自己拼接查询语句.例如: string queryGroup = "{\"query\": {\"match\": { \"roomid\": \"FRIEND_12686_10035\" }}}"; //关键字查询 string queryKeyWord =