AMcoder - javascript, python, java, html, php, sql

elasticsearch. հանել համարը դաշտից

Ես օգտագործում եմ elasticsearch և kibana իմ գերանները պահելու համար: Այժմ այն, ինչ ես ուզում եմ, դաշտից մի թիվ հանելն ու այն նոր դաշտում պահելն է:

Այսպիսով, օրինակ, ունենալով սա.

accountExist կատարման ժամանակը` 1046 ms

Կցանկանայի հանել (1046) թիվը և տեսնել այն նոր դաշտում՝ կիբանայում։

Դա հնարավոր է? ինչպես? Շնորհակալություն օգնության համար

07.10.2015

  • Դուք պատասխան ունե՞ք սրա համար։ Ես նույնն եմ փնտրում 07.02.2020
  • Մենք դա լուծեցինք՝ օգտագործելով logstash սցենարներ: Գրոկի հետ դուք կարող եք շատ բան անել: 10.02.2020

Պատասխանները:


1

Դուք պետք է դա անեք ինդեքսավորումից առաջ/ընթացքում:

Elasticsearch-ի շրջանակներում դուք կարող եք ստանալ այն, ինչ ձեզ անհրաժեշտ է ինդեքսավորման ժամանակ.

  1. Սահմանեք նոր անալիզատոր՝ օգտագործելով Նախշման անալիզատորը կանոնավոր արտահայտությունը փաթաթելու համար (ձեր նպատակների համար տողում հաջորդական թվանշաններ գրանցելու համար - լավ պատասխան այս թեմայի վերաբերյալ):
  2. Ստեղծեք ձեր նոր թվային դաշտը քարտեզագրման մեջ՝ արդյունահանված ժամանակները պահելու համար:
  3. Օգտագործեք copy_to պատճենեք գրանցամատյանի հաղորդագրությունը մուտքագրման դաշտից նոր թվային դաշտում (2), որտեղ նոր անալիզատորը կվերլուծի այն:

Analyze API կարող է օգտակար լինել թեստավորման նպատակով .

07.10.2015
  • Ինչպես նշվեց, դա պետք է արվի ինդեքսավորման ժամանակ, այնպես որ առկա տվյալների համար սա ավելացնելու համար պետք է նորից ինդեքսավորեք: Դրա համար պատշաճ ռազմավարություն այստեղ՝ stackoverflow.com/a/17446500/947986 07.10.2015
  • Հիասթափեցնեք, որ դուք պետք է գնալ նման երկարությունների, արեք այդքան չնչին բան: Կա՞ որևէ պատճառ, թե ինչու kibana-ի համար դժվար է արժեքներ հանել տեքստը գծագրելու համար և այլն: 04.08.2016
  • Ասեք, որ ցանկանում էիք անցնել տեղեկամատյանների անցած շաբաթը (10 մմ գրառումներ)՝ փնտրելով հարցումներ, որոնք տևել են 1+ վայրկյան: Տվյալների բազայում դուք կկատարեիք 10 մմ տողերի աղյուսակի սկանավորում՝ վերամշակելով ռեգեքս 10 մմ անգամ, որին հաջորդում էր CAST և համեմատում… Դա երկար ժամանակ կպահանջի: Եթե ​​դուք սկզբից բեռնել եք կատարման ժամանակը իր սեփական (ինդեքսավորված) դաշտում, ապա դուք կկարողանաք գրառումները գտնել մի քանի ցատկելով btree-ից (միկրովայրկյանե՞ր): Կիբանան հենվում է այն բանի վրա, ինչում լավ է Elasticsearch-ը. համախմբում, ոչ թե ծանրաբեռնվածություն: 07.08.2016
  • Վախենում եմ, այս լուծումը չի աշխատի։ Տես elastic.co/guide/en/elasticsearch/reference /current/ It is the field value which is copied, not the terms (which result from the analysis process). Ես փորձարկել եմ այն, և դա իսկապես չի աշխատի, քանի որ before արժեքի վերլուծությունը պատճենվում է նոր դաշտում՝ անալիզատորից ստացված տերմինների փոխարեն: 07.11.2017
  • Ձեր փաստարկը ճիշտ է։ Վերլուծությունը (որը հանեց թիվը) պետք է կատարվեր նպատակակետ դաշտում: Բայց հետադարձ հայացքից, նույնիսկ եթե դուք հանեք թվային մասը, դուք պետք է կատարեիք տեքստի վերլուծություն նպատակակետի դաշտում, որպեսզի վերջնական տերմինը լինի տեքստային և ոչ թվային, ինչպես նախատեսված է: Նախկինում ես միշտ վարել եմ այս տեսակի տեքստի վերլուծություն՝ նախքան ինդեքսավորման համար գրառումն ուղարկելը: 10.11.2017

  • 2

    Չնայած արդյունավետ չէ, եթե դուք պետք է խուսափեք վերաինդեքսավորումից, կարող եք օգտագործել kibana-ում գրված դաշտերը:

    Ներածությունն այստեղ՝ https://www.elastic.co/blog/using-painless-kibana-scripted-fields

    • միացրեք ցավազրկող ռեգեքսի աջակցությունը՝ տեղադրելով հետևյալը ձեր elasticsearch.yaml-ում՝
      #P3#
    • վերսկսել elasticsearch-ը
    • Ստեղծեք նոր սկրիպտային դաշտ Kibana-ում կառավարման միջոցով -> ինդեքսային նախշեր -> գրված դաշտեր
    • ընտրել ցավազուրկ որպես լեզու և համարը որպես տեսակ
    • ստեղծեք իրական սցենարը, օրինակ.
    def logMsg = params['_source']['log_message'];
    if(logMsg == null) {
     return -10000;
    }
    def m = /.*accountExist execution time: ([0-9]+) ms.*$/.matcher(params['_source']['log_message']);
    if ( m.matches() ) {
       return Integer.parseInt(m.group(1))
    } else {
       return -10000
    }
    
    • դուք պետք է ամբողջությամբ վերաբեռնեք վեբ կայքը, որպեսզի նոր դաշտերը գործարկվեն, պարզապես բաց հայտնաբերման կայքում նորից որոնում կատարելը նոր դաշտեր չի հավաքի: (Սա համարյա ստիպեց ինձ դադարեցնել այս աշխատանքը գործելու փորձերը.-)
    • օգտագործել սկրիպտը բացահայտումների կամ պատկերացումների մեջ

    Թեև ես հասկանում եմ, որ դա կատարյալ չէ սկրիպտային դաշտերը միլիոնավոր գրանցամատյանների համար, իմ օգտագործման դեպքը շատ հատուկ գրանցամատյան է, որը գրանցվում է օրական ընդհանուր առմամբ 10 անգամ, և ես օգտագործում եմ միայն արդյունքում ստացված դաշտերը՝ վիզուալիզացիա ստեղծելու համար կամ վերլուծություն, որտեղ ես նվազեցնում եմ թեկնածուներին նախօրոք կանոնավոր հարցումների միջոցով:

    Հետաքրքիր կլիներ, եթե հնարավոր լինի, որ այդ դաշտերը հաշվարկվեն միայն այն իրավիճակներում, երբ դրանք ձեզ անհրաժեշտ են (կամ դրանք իմաստ ունեն և սկզբից հաշվարկելի են, այսինքն՝ «վերադարձը -1000»-ն ավելորդ դարձնելու համար): Ներկայումս դրանք կկիրառվեն և կցուցադրվեն գրանցամատյանների յուրաքանչյուր մուտքի համար:
    Դուք կարող եք ստեղծել սկրիպտային դաշտեր հարցումների ներսում, ինչպիսիք են՝ https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html բայց դա կարծես մի քիչ շատ է թաղված գլխարկի տակ, որպեսզի հեշտությամբ պահպանվի:/

    19.05.2017
    Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..