ইলাস্টিক সার্চ এসকিউএল অনুবাদ API

Ilastika Sarca Esaki U Ela Anubada Api



এই পোস্টে, আমরা শিখব কীভাবে একটি এসকিউএল অনুসন্ধানকে JSON-এর উপর ভিত্তি করে সম্পূর্ণ কোয়েরি ডোমেন নির্দিষ্ট ভাষা সমন্বিত একটি বৈধ ইলাস্টিক সার্চ অনুসন্ধান API অনুরোধে অনুবাদ করতে হয়।

যদিও এটি একটি ছোট API, এটি একটি খুব উপকারী টুল, বিশেষ করে এসকিউএল ডাটাবেস থেকে আসা ডেভেলপারদের জন্য। এটি এসকিউএল কোয়েরিগুলিকে সংশ্লিষ্ট অনুসন্ধান প্রশ্নের সাথে দ্রুত সম্পর্কিত করে শেখার বক্ররেখা কমাতে পারে।

তারপরে আপনি Elasticsearch অনুসন্ধান API এবং সমর্থিত ক্যোয়ারী ভাষাগুলির সম্পূর্ণ ক্ষমতাগুলি অন্বেষণ করতে পারেন।







এটা মনে রাখতে হবে যে যদিও ইলাস্টিকসার্চ এসকিউএল সমর্থন করে, এতে বিভিন্ন সীমাবদ্ধতা রয়েছে।



প্রশ্ন সিনট্যাক্স

নিম্নলিখিত অনুবাদ API এর সিনট্যাক্স দেখায়:



_sql/অনুবাদ পান

{

অনুরোধ_বডি

}

আপনি নিম্নলিখিত সিনট্যাক্সে দেখানো হিসাবে অনুবাদ API এ একটি পোস্ট অনুরোধ পাঠাতে পারেন:





পোস্ট _sql/অনুবাদ

{

অনুরোধ_বডি

}

আপনার ক্লাস্টার কনফিগারেশনের উপর নির্ভর করে, API-এর সূচীতে পড়ার সুবিধার প্রয়োজন হতে পারে যার ডেটা আপনি জিজ্ঞাসা করতে চান। আপনি একটি সূচক উপনাম বা একটি ডেটা স্ট্রীম হিসাবে লক্ষ্য সম্পদ নির্দিষ্ট করতে পারেন।

অনুরোধ_বডিতে, আপনি সমস্ত SQL অনুসন্ধান API অনুরোধের বডি প্যারামিটার নির্দিষ্ট করতে পারেন। আরও জানতে নিম্নলিখিত সংস্থানগুলিতে প্রদত্ত নথিগুলি অন্বেষণ করুন:



https://www.elastic.co/guide/en/elasticsearch/reference/current/sql-search-api.html#sql-search-api-request-body

প্রতিক্রিয়া হিসাবে, ক্যোয়ারীটি অনুসন্ধান করা ডেটা সহ অনুসন্ধান API-এর সাথে সম্পর্কিত ফলাফলটি ফেরত দেবে।

উদাহরণ

এই APIটি কীভাবে ব্যবহার করবেন তা সর্বোত্তমভাবে ব্যাখ্যা করার জন্য, আমরা ধরে নেব যে আমাদের কাছে 'নেটফ্লিক্স' নামক একটি সূচক রয়েছে যাতে নেটফ্লিক্স চলচ্চিত্র এবং টিভি শো সম্পর্কিত সমস্ত ডেটা রয়েছে।

ধরুন আমরা Netflix সূচী থেকে সেরা পাঁচটি সিনেমা আনতে চাই যা আমরা 2020 এবং তার উপরে মুক্তি পেয়েছি:

সমতুল্য এসকিউএল ক্যোয়ারী নীচে দেখানো হিসাবে প্রকাশ করা যেতে পারে:

নেটফ্লিক্স থেকে শিরোনাম, সময়কাল, রেটিং, টাইপ করুন WHERE type = 'সিনেমা' এবং মুক্তির_বছর >= 2020

ইলাস্টিকসার্চে উপরের এসকিউএল অনুসন্ধান চালানোর জন্য, আমরা এটিকে নীচে দেখানো হিসাবে SQL অনুসন্ধান API-এ রাখতে পারি:

curl -XGET 'http://localhost:9200/_sql?format=txt' -এইচ 'kbn-xsrf: রিপোর্টিং' -এইচ 'কন্টেন্ট-টাইপ: অ্যাপ্লিকেশন/json' -d '

{

'প্রশ্ন': ' \n 'নেটফ্লিক্স' থেকে শিরোনাম, সময়কাল, রেটিং, টাইপ করুন যেখানে প্রকার = '
\ ' সিনেমা ' \' ' এবং মুক্তির_বছর >= 2020 \n ',

'
আনয়ন_আকার ': 5

}'

পূর্ববর্তী অনুরোধে সূচীটি জিজ্ঞাসা করা উচিত এবং মিলে যাওয়া রেকর্ডগুলি আনা উচিত৷ রিটার্ন আউটপুট পাঠ্য বিন্যাসে নীচে দেওয়া হয়েছে:

আমরা দেখতে পাচ্ছি, Elasticsearch প্রত্যাশিত আউটপুট প্রদান করে।

JSON হিসাবে আউটপুট ফেরত দিতে, আমরা নীচের মত JSON ফর্ম্যাট সেট করতে পারি:

curl -XGET 'http://localhost:9200/_sql?format=json' -এইচ 'kbn-xsrf: রিপোর্টিং' -এইচ 'কন্টেন্ট-টাইপ: অ্যাপ্লিকেশন/json' -d '

{

'প্রশ্ন': ' \n 'নেটফ্লিক্স' থেকে শিরোনাম, সময়কাল, রেটিং, টাইপ করুন যেখানে প্রকার = '
\ ' সিনেমা ' \' ' এবং মুক্তির_বছর >= 2020 \n ',

'
আনয়ন_আকার ': 5

}'

আউটপুট:

এসকিউএল ক্যোয়ারীকে অনুসন্ধান অনুরোধে রূপান্তর করুন

পূর্ববর্তী এসকিউএল অনুসন্ধান ক্যোয়ারীটিকে একটি ইলাস্টিকসার্চ অনুরোধে রূপান্তর করতে, আমরা এটিকে নীচে দেখানো হিসাবে অনুবাদ API এ পাস করতে পারি:

curl -XGET 'http://localhost:9200/_sql/translate' -এইচ 'kbn-xsrf: রিপোর্টিং' -এইচ 'কন্টেন্ট-টাইপ: অ্যাপ্লিকেশন/json' -d '

{

'প্রশ্ন': ' \n 'নেটফ্লিক্স' থেকে শিরোনাম, সময়কাল, রেটিং, টাইপ করুন যেখানে প্রকার = '
\ ' সিনেমা ' \' ' এবং মুক্তির_বছর >= 2020 \n ',

'
আনয়ন_আকার ': 5

}'

API-এর উচিত ইনপুট SQL ইনপুটকে পার্স করা এবং এটিকে একটি বৈধ অনুসন্ধান অনুরোধে রূপান্তর করা, যেমনটি নিম্নলিখিত আউটপুটে দেখানো হয়েছে:

{
'আকার' : 5 ,
'প্রশ্ন' : {
'বুল' : {
'অবশ্যই' : [
{
'পদ' : {
'টাইপ' : {
'মান' : 'সিনেমা'
}
}
},
{
'পরিসীমা' : {
'মুক্তির বছর' : {
'gte' : 2020 ,
'প্রচার করা' : 1
}
}
}
],
'প্রচার করা' : 1
}
},
'_সূত্র' : মিথ্যা,
'ক্ষেত্র' : [
{
'ক্ষেত্র' : 'শিরোনাম'
},
{
'ক্ষেত্র' : 'সময়কাল'
},
{
'ক্ষেত্র' : 'রেটিং'
},
{
'ক্ষেত্র' : 'টাইপ'
}
],
'সাজান' : [
{
'_ডক' : {
'আদেশ' : 'asc'
}
}
]
}

তারপরে আপনি নীচে দেখানো হিসাবে Elasticsearch অনুসন্ধান API এ পাঠাতে এই অনুরোধ বিন্যাসটি ব্যবহার করতে পারেন:

curl -XPOST 'http://localhost:9200/netflix/_search' -এইচ 'kbn-xsrf: রিপোর্টিং' -এইচ 'কন্টেন্ট-টাইপ: অ্যাপ্লিকেশন/json' -d '
{
'আকার': 5,
'প্রশ্ন': {
'বুল': {
'অবশ্যই': [
{
'টার্ম': {
'টাইপ': {
'মান': 'চলচ্চিত্র'
}
}
},
{
'পরিসীমা': {
'মুক্তির বছর': {
'gte': 2020,
'বুস্ট': 1
}
}
}
],
'বুস্ট': 1
}
},
'_উৎস': মিথ্যা,
'ক্ষেত্র': [
{
'ক্ষেত্র': 'শিরোনাম'
},
{
'ক্ষেত্র': 'সময়কাল'
},
{
'ক্ষেত্র': 'রেটিং'
},
{
'ক্ষেত্র': 'টাইপ'
}
],
'সাজান': [
{
'_doc': {
'order': 'asc'
}
}
]
}'

একইভাবে, অনুরোধটি নীচে দেখানো অনুরূপ ডেটা ফেরত দেওয়া উচিত:

উপসংহার

এই পোস্টের মাধ্যমে, আপনি আবিষ্কার করেছেন কিভাবে আপনি একটি বিদ্যমান ইলাস্টিকসার্চ সূচক থেকে ডেটা আনতে SQL কোয়েরি ব্যবহার করতে পারেন। আপনি একটি বৈধ SQL কোয়েরিকে ইলাস্টিকসার্চ অনুরোধে রূপান্তর করতে অনুবাদ SQL API কীভাবে ব্যবহার করবেন তাও শিখেছেন।