Еластицсеарцх СКЛ Транслате АПИ

Elasticsearch Skl Translate Api



У овом посту ћемо научити како да преведемо СКЛ претрагу у важећи Еластицсеарцх АПИ захтев за претрагу који садржи потпуни језик за домен упита заснован на ЈСОН-у.

Иако је ово мали АПИ, он је веома користан алат, посебно за програмере који долазе из СКЛ база података. Такође може смањити криву учења брзим повезивањем СКЛ упита са одговарајућим упитима за претрагу.

Затим можете истражити све могућности Еластицсеарцх АПИ-ја за претрагу и подржаних језика упита.







Треба имати на уму да иако Еластицсеарцх подржава СКЛ, он садржи различита ограничења.



Синтакса упита

У наставку је приказана синтакса АПИ-ја за превођење:



ГЕТ _скл/транслате

{

рекуест_боди

}

Такође можете послати захтев за објављивање АПИ-ју за превођење као што је приказано у следећој синтакси:





ПОСТ _скл/транслате

{

рекуест_боди

}

У зависности од ваше конфигурације кластера, АПИ може захтевати привилегије читања индекса чије податке желите да упитате. Такође можете навести циљни ресурс као псеудоним индекса или ток података.

У рекуест_боди, можете навести све параметре тела захтева за СКЛ Сеарцх АПИ. Истражите документе наведене у следећем ресурсу да бисте сазнали више:



16ЦЕЕФЦ6251Ф7А4А452ДЦА8448Ф448ФФ33Д86Д7Ф

Као одговор, упит треба да врати резултат који одговара АПИ-ју за претрагу са упитним подацима.

Пример

Да бисмо најбоље илустровали како се користи овај АПИ, претпоставићемо да имамо индекс под називом „нетфлик“ који садржи све податке о Нетфлик филмовима и ТВ емисијама.

Претпоставимо да желимо да преузмемо пет најбољих филмова из Нетфлик индекса које смо објавили 2020. године и новије:

Еквивалентни СКЛ упит се може изразити на следећи начин:

СЕЛЕЦТ наслов, трајање, оцену, тип ФРОМ нетфлик ВХЕРЕ тип = 'Филм' И година_издања >= 2020

Да бисмо извршили горњу СКЛ претрагу у Еластицсеарцх-у, можемо је ставити у СКЛ Сеарцх АПИ као што је приказано у наставку:

цурл -КСГЕТ “Б4488408А59Ц97775ЦА06А3818Е9ФЦФ782615Ц01” 'кбн-ксрф: извештавање' „Тип садржаја: апликација/јсон“ '

{

'упит': ' ИЗАБЕРИТЕ наслов, трајање, оцену, укуцајте ФРОМ 'нетфлик' ГДЈЕ тип = '
\ '' Филм ' \' ' И година_издања >= 2020 ',

'
фетцх_сизе ': 5

}'

Претходни захтев би требало да упита индекс и преузме одговарајуће записе. Повратни излаз је у текстуалном формату као што је наведено у наставку:

Као што видимо, Еластицсеарцх враћа очекивани излаз.

Да бисмо вратили излаз као ЈСОН, можемо поставити формат на ЈСОН као што је приказано у наставку:

цурл -КСГЕТ '8618А3Е0А897Е3Б68965Б9Д57125Ц92Д006ЦБ38Б' 'кбн-ксрф: извештавање' „Тип садржаја: апликација/јсон“ '

{

'упит': ' ИЗАБЕРИТЕ наслов, трајање, оцену, укуцајте ФРОМ 'нетфлик' ГДЈЕ тип = '
\ '' Филм ' \' ' И година_издања >= 2020 ',

'
фетцх_сизе ': 5

}'

Излаз:

Претворите СКЛ упит у захтев за претрагу

Да бисмо претворили претходни СКЛ упит за претрагу у захтев Еластицсеарцх, можемо га проследити у АПИ за превођење као што је приказано у наставку:

цурл -КСГЕТ 'Д61323353Е506ДБ11Ц7924Е470Е9Ф57АФ0АЕ6ЦЦЕ' 'кбн-ксрф: извештавање' „Тип садржаја: апликација/јсон“ '

{

'упит': ' ИЗАБЕРИТЕ наслов, трајање, оцену, укуцајте ФРОМ 'нетфлик' ГДЈЕ тип = '
\ '' Филм ' \' ' И година_издања >= 2020 ',

'
фетцх_сизе ': 5

}'

АПИ треба да анализира улазни СКЛ унос и конвертује га у важећи захтев за претрагу, као што је приказано у следећем излазу:

{
'величина' : 5 ,
'упит' : {
'боол' : {
'мора' : [
{
'термин' : {
'тип' : {
'вредност' : 'Филм'
}
}
},
{
'домет' : {
'година издања' : {
'гте' : 2020 ,
'појачати' : 1
}
}
}
],
'појачати' : 1
}
},
'_извор' : лажно,
'поља' : [
{
'поље' : 'титула'
},
{
'поље' : 'трајање'
},
{
'поље' : 'оцена'
},
{
'поље' : 'тип'
}
],
'врста' : [
{
'_доц' : {
'нареди' : 'узлаз'
}
}
]
}

Затим можете користити овај формат захтева за слање АПИ-ју за претрагу Еластицсеарцх као што је приказано у наставку:

цурл -КСПОСТ 'Б6Ц4А871ЕЕ172АБ0Ц5Б1ЦА2Ц5ДЦ568Д8327А03Ц7' 'кбн-ксрф: извештавање' „Тип садржаја: апликација/јсон“ '
{
'величина': 5,
'упит': {
'боол': {
'мора': [
{
'терм': {
'тип': {
'вредност': 'Филм'
}
}
},
{
'домет': {
'година издања': {
'гте': 2020,
'појачање': 1
}
}
}
],
'појачање': 1
}
},
'_соурце': нетачно,
'поља': [
{
'поље': 'наслов'
},
{
'поље': 'трајање'
},
{
'поље': 'оцена'
},
{
'поље': 'тип'
}
],
'врста': [
{
'_доц': {
'ред': 'узлаз'
}
}
]
}'

Слично томе, захтев треба да врати сличне податке као што је приказано у наставку:

Закључак

Кроз овај пост сте открили како можете да користите СКЛ упите за преузимање података из постојећег Еластицсеарцх индекса. Такође сте научили како да користите СКЛ АПИ за превођење за претварање важећег СКЛ упита у захтев Еластицсеарцх.