微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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操作如下:

先向服务器中存入,索引为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)

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐