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)
用于数据统计。比如统计一批数值数据中个值段的个数等。。