Elasticsearch笔记
发表于 · 归类于
技术 · 阅读完需 11 分钟 ·
阅读量 报告错误
一、安装
文件源:https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/
wget https://mirrors.tuna.tsinghua.edu.cn/elasticstack/7.x/yum/7.8.1/elasticsearch-7.8.1-x86_64.rpm
rpm -ivh elasticsearch-7.8.1-x86_64.rpm
编辑:/etc/elasticsearch/elasticsearch.yml
# cat /etc/elasticsearch/elasticsearch.yml|grep -v "^#"
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: 0.0.0.0
http.port: 9200
discovery.seed_hosts: ["0.0.0.0", "::"]
service elasticsearch.service restart
二、基本使用
[root@baihua ~]# curl http://39.104.117.27:9200/
{
"name":"temp802",
"cluster_name":"elasticsearch",
"cluster_uuid":"GpWqqxKfSIOnmzbtmuMnvA",
"version":{
"number":"7.8.1",
"build_flavor":"default",
"build_type":"rpm",
"build_hash":"b5ca9c58fb664ca8bf9e4057fc229b3396bf3a89",
"build_date":"2020-07-21T16:40:44.668009Z",
"build_snapshot":false,
"lucene_version":"8.5.1",
"minimum_wire_compatibility_version":"6.8.0",
"minimum_index_compatibility_version":"6.0.0-beta1"
},
"tagline":"You Know, for Search"
}
写入数据
POST http://39.104.117.27:9200/home/index
查询数据
GET http://39.104.117.27:9200/home/index/_search
{
"query":{
"match":{
"id":7
}
}
}
{
"took": 381,
"timed_out": false,
"_shards": {
"total": 1,
"successful": 1,
"skipped": 0,
"failed": 0
},
"hits": {
"total": {
"value": 1,
"relation": "eq"
},
"max_score": 1.0,
"hits": [
{
"_index": "home",
"_type": "index",
"_id": "o4VHmnMBfIxNROFX3s7B",
"_score": 1.0,
"_source": {
"id": 7,
"name": "张三"
}
}
]
}
}
查看有哪些库
GET http://39.104.117.27:9200/_cat/indices?v
删除数据库
DELETE http://39.104.117.27:9200/home
三、汇聚查询
(1)WHERE查询
{"query":{"match":{"yid":"yid\_5cf367e9ac0b3"}}}
(2)范围查询
{"query":{"range":{"stop":{"gte":7,"lte":10}}}}
(3)计算总和
{"aggs":{"sum\_stop":{"sum":{"field":"stop"}}}}
(4)数据分组
{"size":0,"aggs":{"all\_stop":{"terms":{"field":"stop"}}}}
{"size":0,"aggs":{"yids":{"terms":{"field":"yid.keyword","size":10}}}}
{"size":0,"aggs":{"urls":{"terms":{"field":"url.keyword"},"aggs":{"yids":{"terms":{"field":"yid.keyword","size":1}}}}}}
(5)数据计数
es.yongdongli.net:9100/home/index/\_count
(6)正则查询某个字段
{"size":20,"query":{"regexp":{"url":"find(.\*)"}}}
(7)查询某个字段总和
{"size":0,"aggs":{"sum\_stop":{"sum":{"field":"stop"}}}}
{"size":0,"aggs":{"sum\_stop":{"terms":{"field":"url.keyword","size":60}}}}
(8)时间分组按小时
{
"size":0,
"aggs":{
"group_by_create_time":{
"date_histogram":{
"field":"create_time",
"interval":"1h",
"format":"yyyy-MM-dd HH",
"min_doc_count":0,
"extended_bounds":{
"min":1588000000000,
"max":1588134534000
}
}
}
},
"query":{
"bool":{
"must":{
"range":{
"create_time":{
"gte":1588000000000,
"lte":1588134534000
}
}
}
}
}
}
(9)去重计数
{
"size":0,
"aggs":{
"all_stop":{
"cardinality":{
"field":"yid.keyword"
}
}
}
}
(10)综合匹配
根据某个字段倒序,某个字段匹配正则,某个字段为空时查询,去重yid字段
{
"size":20,
"query":{
"bool":{
"must":{
"regexp":{
"url":"find(.*)"
}
},
"must_not":{
"term":{
"yid":""
}
}
}
},
"collapse":{
"field":"yid.keyword"
},
"sort":[
{
"create_time":{
"order":"desc"
}
}
]
}
四、项目使用
PHP项目composer安装插件
composer require elasticsearch/elasticsearch
五、总结
暂无总结