一、elasticsearch入门(基本介绍)

工具

sql转换 https://github.com/NLPchina/elasticsearch-sql/
Elasticsearch权威指南 https://www.gitbook.com/book/looly/elasticsearch-the-definitive-guide-cn/details

Query-DSL 常用关键字:

query,search_type
term,terms, match,match_phrase,multi_match,fuzzy
bool,and,or,not,limit,must,must_not,should
range,size,from,to,gt,gte,lt,lte
field,fields ,aggs,count,sum,min,max,avg

windows环境搭建

Elasticsearch是一个基于Apache Lucene(TM)的开源搜索引擎。 无论在开源还是专有领域, Lucene可以被认为是迄今为止最先进、 性能最好的、 功能最全的搜索引擎库。

  1. 分布式的实时文件存储, 每个字段都被索引并可被搜索
  2. 分布式的实时分析搜索引擎
  3. 可以扩展到上百台服务器, 处理PB级结构化或非结构化数据

本文使用windows版本

Kibana https://www.elastic.co/cn/downloads/kibana
Elasticsearch https://www.elastic.co/cn/downloads/elasticsearch

Kibana

基本概念

在Elasticsearch中, 文档归属于一种类型(type),而这些类型存在于索引(index)中, 我们可以画一些简单的对比图来类比传统关系型数据库:

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices -> Types -> Documents -> Fields
Elasticsearch -> 索引-> 类型-> 文档-> 字段

基本语法

PUT /megacorp/employee/1
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}

PUT /megacorp/employee/2
{
"first_name" : "Jane",
"last_name" : "Smith",
"age" : 32,
"about" : "I like to collect rock albums",
"interests": [ "music" ]
}

PUT /megacorp/employee/3
{
"first_name" : "Douglas",
"last_name" : "Fir",
"age" : 35,
"about": "I like to build cabinets",
"interests": [ "forestry" ]
}
GET /megacorp/employee/1
GET /megacorp/employee/_search   ---搜索全部

链接方式
GET /megacorp/employee/_search?q=last_name:Smith

使用DSL语句查询
 GET /megacorp/employee/_search
 {
   "query": {
     "match": {
       "last_name": "Smith"
     }
   }
 }
 更复杂的搜索
GET /megacorp/employee/_search
{
  "query": {
    "bool": {
      "filter": {
        "range": {
          "age": {
            "gte": 10,
            "lte": 30
          }
        }
      }
    }
  }
}

全文搜索

GET /megacorp/employee/_search
{
    "query" : {
     "match" : {
      "about" : "rock climbing"
      }
    }
}

短语搜索

GET /megacorp/employee/_search
{
    "query" : {
        "match_phrase" : {
            "about" : "rock climbing"
            }
        }
}

搜索高亮

扫描二维码关注公众号,回复: 1374617 查看本文章
GET /megacorp/employee/_search
{
  "query" : {
  "match_phrase" : {
  "about" : "rock climbing"
  }
},
  "highlight": {
  "fields" : {
  "about" : {}
    }
  }
}

分析

GET /megacorp/employee/_search
{
"aggs": {
"all_interests": {
"terms": { "field": "interests.keyword" }
        }
    }
}


聚合也允许分级汇总。 例如, 让我们统计每种兴趣下职员的平均年龄:
GET /megacorp/employee/_search
{
"aggs" : {
  "all_interests" : {
     "terms" : { "field" : "interests.keyword"},
      "aggs" : {
            "avg_age" : {
            "avg" : { "field" : "age" }
           }
     }
    }
  }
}

猜你喜欢

转载自blog.csdn.net/zxh476771756/article/details/79020232