Nosql数据库ElasticSearch的基础用法-初步探索

1>.elatissearch的作用

《《搜索和数据分析引擎》》

数据所搜与分析

2>.elasticsearch的重要属性:

索引index:在Elasticsearch中存储数据的行为就叫做索引(indexing)

文档:文档归属于一种类型(type),而这些类型存在于索引(index)

3>.elasticsearch与传统的数据库的比较:

Relational DB -> Databases -> Tables -> Rows -> Columns
Elasticsearch -> Indices   -> Types  -> Documents -> Fields

4>.elasticsearch的初步探索

(工具:elasticsearch和postman)

1.索引:(简单的存值和取值)

postman操作如下:

Nosql数据库ElasticSearch的基础用法-初步探索

先向服务器中存入,索引为megacorp,类型为employee,id为2的实体。

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

查询:查询得到的信息(GET /megacorp/employee/2)。


{
    "_index": "megacorp",
    "_type": "employee",
    "_id": "3",
    "_version": 1,
    "result": "created",
    "_shards": {
        "total": 2,
        "successful": 1,
        "failed": 0
    },
    "created": true
}

2>.搜索:(搜寻所有的类型值:get index/type/_search)

2.1.简单查询(根据属性进行简单查询)

GET /megacorp/employee/_search?q=last_name:Smith

根据特定的属性进行查询:

localhost:9200/megacorp/employee/_search?q=last_name:Smith

3>.使用DSL语句查询(参数为json数据格式)

DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现

GET /megacorp/employee/_search
{
    "query" : {
        "match" : {
            "last_name" : "Smith"
        }
    }
}

4>.更加复杂的查询(过滤查询,可以筛选出更加详细的数据)

GET /megacorp/employee/_search
{
    "query" : {
        "filtered" : {
            "filter" : {
                "range" : {
                    "age" : { "gt" : 30 } <1>
                }
            },
            "query" : {
                "match" : {
                    "last_name" : "smith" <2>
                }
            }
        }
    }
}

5>.全文检索查询 (对全文的type中所有的数据进行目标值匹配,按相似度进行从大到小进行排序)

GET /megacorp/employee/_search
{
    "query" : {
        "match" : {
            "about" : "rock climbing"
        }
    }
}
{
   ...
   "hits": {
      "total":      2,
      "max_score":  0.16273327,
      "hits": [
         {
            ...
            "_score":         0.16273327, <1>
            "_source": {
               "first_name":  "John",
               "last_name":   "Smith",
               "age":         25,
               "about":       "I love to go rock climbing",
               "interests": [ "sports", "music" ]
            }
         },
         {
            ...
            "_score":         0.016878016, <2>
            "_source": {
               "first_name":  "Jane",
               "last_name":   "Smith",
               "age":         32,
               "about":       "I like to collect rock albums",
               "interests": [ "music" ]
            }
         }
      ]
   }
}

可以得要全文与检索内容的详相近程度,并且按从大大小排序。

6>.短语搜索(可以进行多个短语进行匹配)

同时多个词语进行搜索。

7>.高亮的搜索(对检索到的内容进行单独的提取存储)

当我们运行这个语句时,会命中与之前相同的结果,但是在返回结果中会有一个新的部分叫做highlight,这里包含了来自about字段中的文本,并且用<em></em>来标识匹配到的单词。

8>聚合(aggregations)

用于数据统计。比如统计一批数值数据中个值段的个数等。。

上一篇:yaml入门


下一篇:Oracle中条件表达式