Am mai jos jurnale similare.
Am creat manechin index
și creat cartografiere
ca mai jos în instrumente de dezvoltare
Pune nou
{
„mappings”: {
„proprietăți”: {
"@timestamp-ul": {
"tip": "data",
„format”: „aaaa-LL-zz HH:mm:ss.SSS”
}
}
}
}
și indexate
date ca mai jos,
PUT /new/_doc/1
{
„@timestamp”: „2021-11-05 08:12:14.534”,
"nivel": "INFO",
"id": "1",
"text": "site-ul web este accesat",
„status”: „s-a făcut clic”
}
PUT /new/_doc/2
{
„@timestamp”: „2021-10-14 09:11:14.534”,
"nivel": "INFO",
"id": "3",
"text": "site-ul web este accesat",
„status”: „s-a făcut clic”
}
PUT /new/_doc/3
{
„@timestamp”: „2021-09-09 02:08:20.534”,
"nivel": "INFO",
"id": "4",
"text": "site-ul web este accesat",
„status”: „s-a făcut clic”
}
Pot obține numărul total folosind mai jos cerere
interogare,
GET nou/_căutare
{
„aggs”: {},
"dimensiune": 0,
"câmpuri": [],
„interogare”: {
„bool”: {
"trebuie sa": [],
"filtru": [
{
„bool”: {
"ar trebui să": [
{
„match_phrase”: {
"text": "site-ul web este accesat"
}
}
],
„minimum_should_match”: 1
}
},
{
"gamă": {
"@timestamp-ul": {
"gte": "2021-10-01",
"lte": "2021-10-30"
}
}
}
],
"ar trebui să": [],
"nu trebuie să": []
}
}
}
Primind raspuns
ca mai jos,
{
"a luat": 0,
"timed_out": fals,
„_shards” : {
"total": 1,
"de succes": 1,
„sărit”: 0,
„eșuat”: 0
},
„hituri” : {
„total” : {
„valoare”: 1,
„relație”: „echivalent”
},
„max_score”: nul,
"hituri": [ ]
}
}
După cum vezi, trebuie cod greu
cel Data
pentru a prelua valoarea pentru un anume lună
adică pentru a prelua aceleași informații pentru sept
lună, trebuie să modific interval de date și oră
ca mai jos în cererea de bucle,
"gamă": {
"@timestamp-ul": {
"gte": "2021-09-01",
"lte": "2021-09-30"
}
}
Mai jos este cerere de apel curl
.
curl -u elastic:xxx -XGET „http://10.10.10.10:9200/new/_search?pretty” -H „Content-Type: application/json” -d”
{
„aggs”: {},
"dimensiune": 0,
"câmpuri": [],
„interogare”: {
„bool”: {
"trebuie sa": [],
"filtru": [
{
„bool”: {
"ar trebui să": [
{
„match_phrase”: {
"text": "site-ul web este accesat"
}
}
],
„minimum_should_match”: 1
}
},
{
"gamă": {
"@timestamp-ul": {
"gte": "2021-10-01",
"lte": "2021-10-30"
}
}
}
],
"ar trebui să": [],
"nu trebuie să": []
}
}
}'
Cum pot trece an
și lună
dinamic (adică fără a codifica efectiv cererea în sine) la cererea curl care va prelua informațiile pentru acel anume lună
, an
?
Actualizați -
Pot obține rezultatele pentru luna trecută (noiembrie) sau ultimele 2 luni (oct.) și așa mai departe folosind mai jos,
luna trecuta - nov
-
"gte": "acum-M",
"lt": "acum/M"
2 luni - oct
"gte": "acum-2M/M",
"lte": "acum-2M/M"
Dar există o modalitate de a oferi dorit an
și lună
pentru a recupera rezultate?
Mulțumiri,