இந்த விரைவான டுடோரியலில், எலாஸ்டிக் சர்ச், குறிப்பாக எலாஸ்டிக் சர்ச் எஞ்சினில் குறியீடுகளை உருவாக்குவது எப்படி என்று பார்ப்போம். இந்த டுடோரியலைப் பின்பற்றுவதற்கு ELK ஸ்டாக் பற்றிய விரிவான அறிவு உங்களுக்குத் தேவையில்லை என்றாலும், பின்வரும் தலைப்புகளைப் பற்றிய அடிப்படை புரிதல் சாதகமாக இருக்கலாம்:
- முனையத்தைப் பயன்படுத்தி, குறிப்பாக, CURL
- API கள் மற்றும் JSON பற்றிய அடிப்படை அறிவு
- HTTP கோரிக்கையை உருவாக்குதல்
குறிப்பு: இந்த டுடோரியல் உங்கள் கணினியில் மீள் தேடல் நிறுவப்பட்டு இயங்குகிறது என்று கருதுகிறது.
மீள் தேடல் குறியீடுகள் என்றால் என்ன?
விஷயங்களை மிகைப்படுத்தி அல்லது சிக்கலாக்காமல், ஒரு Elasticsearch குறியீடு என்பது தொடர்புடைய JSON ஆவணங்களின் தொகுப்பாகும்.
முந்தைய இடுகையில் குறிப்பிட்டுள்ளபடி, மீள் தேடல் குறியீடுகள் JSON பொருள்கள் - மீள் தேடலில் சேமிப்பின் அடிப்படை அலகு என்று கருதப்படுகிறது. இந்த தொடர்புடைய JSON ஆவணங்கள் ஒரு குறியீட்டை உருவாக்கும் ஒற்றை அலகுக்குள் சேமிக்கப்படும். எலாஸ்டிக் தேடல் ஆவணங்களை ஒரு தொடர்புடைய தரவுத்தளத்தில் உள்ள அட்டவணையாகக் கருதுங்கள்.
SQL உலகில் ஒரு தரவுத்தளமாக ஒரு மீள் தேடல் குறியீட்டை தொடர்பு கொள்வோம்.
- MySQL => தரவுத்தளங்கள் => அட்டவணைகள் => நெடுவரிசைகள்/வரிசைகள்
- Elasticsearch => குறியீடுகள் => வகைகள் => பண்புகள் கொண்ட JSON ஆவணங்கள்
ஒரு மீள் தேடல் குறியீட்டை உருவாக்குவது எப்படி
Elasticsearch அதன் சேவைகளை வெளிப்படுத்த ஒரு சக்திவாய்ந்த மற்றும் உள்ளுணர்வு REST API ஐப் பயன்படுத்துகிறது. இந்த செயல்பாடு HTTP கோரிக்கைகளைப் பயன்படுத்தி Elasticsearch கிளஸ்டரில் செயல்பாடுகளைச் செய்ய அனுமதிக்கிறது. எனவே, புதிய குறியீட்டை உருவாக்க நாங்கள் உருவாக்க குறியீட்டு API ஐப் பயன்படுத்துவோம்.
இந்த வழிகாட்டிக்கு, கோரிக்கைகளை அனுப்ப மற்றும் அனைத்து பயனர்களுக்கும் ஒருமைப்பாடு மற்றும் பயன்பாட்டினைப் பாதுகாக்க நாங்கள் CURL ஐப் பயன்படுத்துவோம். இருப்பினும், நீங்கள் CURL உடன் பிழைகளை எதிர்கொண்டால், கிபானா கன்சோலைப் பயன்படுத்தவும்.
Elasticsearch கிளஸ்டரில் ஒரு புதிய குறியீட்டை உருவாக்குவதற்கான தொடரியல்:
PUT /ஒரு குறியீட்டை உருவாக்க, நீங்கள் செய்ய வேண்டியது எல்லாம் குறியீட்டு பெயரை மற்ற அளவுருக்கள் இல்லாமல் அனுப்ப வேண்டும், இது இயல்புநிலை அமைப்புகளை பயன்படுத்தி ஒரு குறியீட்டை உருவாக்குகிறது.
குறியீட்டு உடலில் உள்ள குறியீட்டின் பல்வேறு அம்சங்களையும் நீங்கள் குறிப்பிடலாம்:
- குறியீட்டுக்கான அமைப்புகள்
- குறியீட்டு மாற்றுப்பெயர்கள்
- குறியீட்டு புலங்களுக்கான வரைபடங்கள்
குறியீட்டு பெயர் ஒரு தேவையான அளவுரு; இல்லையெனில், URIL (/) க்கான பிழையைப் பெறுவீர்கள்
கர்ல் -X PUT லோக்கல் ஹோஸ்ட்: 9200{'பிழை': 'யூரி [/] மற்றும் முறை [PUT] க்கான தவறான HTTP முறை, அனுமதிக்கப்பட்டது: [நீக்கு, HEAD, GET]', 'நிலை': 405}
ஒற்றை_இண்டெக்ஸ் என்ற பெயருடன் ஒரு புதிய குறியீட்டை உருவாக்க, நாங்கள் கோரிக்கையை நிறைவேற்றுகிறோம்:
PUT /ஒற்றை_இண்டெக்ஸ்CURL க்கு, கட்டளையைப் பயன்படுத்தவும்:
கர்ல் -எக்ஸ் பட் 'லோக்கல் ஹோஸ்ட்: 9200/சிங்கிள்_இண்டெக்ஸ்? அழகான'இந்த கட்டளை HTTP நிலை 200 சரி மற்றும் அங்கீகரிக்கப்பட்ட ஒரு செய்தி: உண்மை என:
{ஒப்புக்கொள்ளப்பட்டது: உண்மை,
'துண்டுகள்_அறிந்தவை': உண்மை,
'அட்டவணை': 'ஒற்றை_இண்டெக்ஸ்'
}
மேலே உள்ள கோரிக்கை நாம் எந்த உள்ளமைவுகளையும் குறிப்பிடாததால் இயல்புநிலை அமைப்புகளுடன் ஒரு குறியீட்டு ஒற்றை_இண்டெக்ஸை உருவாக்குகிறது.
குறியீட்டு பெயரிடும் விதிகள்
மீள் தேடல் குறியீடுகளுக்கு பெயர்களை உருவாக்கும் போது, நீங்கள் பின்வரும் பெயரிடும் தரங்களை கடைபிடிக்க வேண்டும்:
- குறியீட்டு பெயர் சிறிய எழுத்தில் மட்டுமே இருக்க வேண்டும்.
- குறியீட்டு பெயர்கள் ஒரு கோடு (-), ஒரு அடிக்கோடி (_) அல்லது ஒரு கூடுதல் அடையாளம் (+) உடன் தொடங்க முடியாது
- பெயர்கள் இருக்க முடியாது. அல்லது ..
- குறியீட்டு பெயர்களில் சிறப்பு எழுத்துக்கள் இருக்க முடியாது: , /, *,?,,, |, '(விண்வெளி எழுத்து), ,,
- குறியீட்டு பெயர்களின் நீளம் 255 பைட்டுகளுக்கும் குறைவாக இருக்க வேண்டும். குறியீட்டு பெயரின் மொத்த நீளத்தில் மல்டி-பைட் எழுத்துக்கள் கணக்கிடப்படும். உதாரணமாக, ஒரு எழுத்து 8 பைட்டுகள் நீளமாக இருந்தால், பெயரின் மொத்த மீதமுள்ள நீளம் 255 - 8 ஆகும்
- Elasticsearch இன் சமீபத்திய பதிப்பில், a என்று தொடங்கும் பெயர்கள். மறைக்கப்பட்ட குறியீடுகள் மற்றும் எலாஸ்டிக் சர்ச் செருகுநிரல்களால் பயன்படுத்தப்படும் உள் குறியீடுகளுக்கு ஒதுக்கப்பட்டுள்ளது.
ஒரு குறியீட்டு உடலை உருவாக்குவது எப்படி
ஒரு குறியீட்டை உருவாக்க PUT கோரிக்கையைப் பயன்படுத்தும் போது, நீங்கள் உருவாக்க விரும்பும் குறியீட்டுக்கான அமைப்புகளை வரையறுக்கும் பல்வேறு வாதங்களை நீங்கள் அனுப்பலாம். உடலில் நீங்கள் குறிப்பிடக்கூடிய மதிப்புகள் பின்வருமாறு:
- மாற்றுப்பெயர்கள்: நீங்கள் உருவாக்க விரும்பும் குறியீட்டுக்கான மாற்றுப் பெயர்களைக் குறிப்பிடுகிறது; இந்த அளவுரு விருப்பமானது.
- அமைப்புகள்: நீங்கள் உருவாக்க விரும்பும் குறியீட்டிற்கான உள்ளமைவு விருப்பங்களை இது வரையறுக்கிறது. நீங்கள் எந்த அளவுருக்களையும் குறிப்பிடத் தவறினால், இயல்புநிலை உள்ளமைவுகளைப் பயன்படுத்தி குறியீட்டு உருவாக்கப்படும்.
- வரைபடங்கள்: இது குறியீட்டில் உள்ள புலங்களுக்கான வரைபடத்தை வரையறுக்கிறது. வரைபடங்களில் நீங்கள் சேர்க்கக்கூடிய விவரக்குறிப்புகள் பின்வருமாறு:
- புலம் பெயர்
- தரவு வகை
- மேப்பிங் அளவுரு
உடல் அமைப்புகளுடன் ஒரு குறியீட்டை உருவாக்குவதற்கான எடுத்துக்காட்டுக்கு, கீழே உள்ள கோரிக்கையை கவனியுங்கள்:
PUT /single_index_with_body{
'அமைப்புகள்': {
'ஷார்ட்ஸ் எண்: 2,
'பிரதி_களின் எண்': 2
},
வரைபடங்கள்: {
'பண்புகள்': {
'field1': {'type': 'object'}
}
}
}
ஒரு சமமான கோரிக்கைக்கு:
சுருட்டை -XPUT 'http: // Localhost: 9200/single_index_with_body' -H 'உள்ளடக்கம் -வகை: பயன்பாடு/json' -d '{' அமைப்புகள் ': {' number_of_shards ': 2,' number_of_replicas ': 2},' மேப்பிங்ஸ் ' : {'பண்புகள்': {'field1': {'type': 'object'}}}} 'மேலே உள்ள கோரிக்கை 2 எண்கள் துண்டுகள் மற்றும் 2 பிரதிகளுடன் ஒற்றை_இன்டெக்ஸ்_வித்_பாடி என்ற புதிய குறியீட்டை உருவாக்குகிறது. இது பெயர் புலம் 1 புலத்துடன் ஒரு வரைபடத்தை உருவாக்கி, JSON பொருளாக தட்டச்சு செய்கிறது.
நீங்கள் கோரிக்கையை அனுப்பியவுடன், கோரிக்கையின் நிலையைக் கொண்ட பதிலைப் பெறுவீர்கள்:
{ஒப்புக்கொள்ளப்பட்டது: உண்மை,
'துண்டுகள்_அறிந்தவை': உண்மை,
'இன்டெக்ஸ்': 'ஒற்றை_இன்டெக்ஸ்_வித்_பாடி'
}
அங்கீகரிக்கப்பட்ட குறியீடானது கிளஸ்டரில் வெற்றிகரமாக உருவாக்கப்பட்டதா என்பதைக் காட்டுகிறது, அதே நேரத்தில் குறிப்பிட்ட குறியீட்டில் உள்ள ஒவ்வொரு துண்டுக்கும் தேவையான எண்ணிக்கையிலான துண்டு பிரதிகள் காலக்கெடுவுக்கு முன் தொடங்கப்பட்டதா என்பதை ஷார்ட்ஸ்_அக்னோலெட்ஜ் காட்டுகிறது.
மீள் தேடல் குறியீட்டை எப்படிப் பார்ப்பது
நீங்கள் உருவாக்கிய குறியீட்டைப் பற்றிய தகவலைப் பார்க்க, ஒரு குறியீட்டை உருவாக்கும் அதே கோரிக்கையைப் பயன்படுத்தவும், ஆனால் PUT க்குப் பதிலாக HTTP முறையைப் பயன்படுத்தவும்:
பெறுCURL க்கு,
சுருட்டை -XGET http: // Localhost: 9200/single_index_with_bodyஇந்த கட்டளை கோரப்பட்ட குறியீட்டைப் பற்றிய விரிவான தகவல்களை உங்களுக்கு வழங்கும்:
{'ஒற்றை_இன்டெக்ஸ்_வித்_பாடி': {
'மாற்றுப்பெயர்கள்': {},
'மேப்பிங்ஸ்': {
'பண்புகள்': {
'புலம் 1': {
'வகை': 'பொருள்'
}
}
},
'அமைப்புகள்': {
'அட்டவணை': {
'ரூட்டிங்': {
'ஒதுக்கீடு': {
'சேர்க்கிறது' : {
'_tier_preference': 'data_content'
}
}
},
'ஷார்ட்ஸ் எண்:' 2 ',
'வழங்கப்பட்ட_பெயர்': 'ஒற்றை_இண்டெக்ஸ்_வித்_பாடி',
'கிரியேஷன்_தேதி': '1611045687208',
'ரெப்ளிகாஸ் எண்:' 2 ',
'uuid': '3TRkO7xmQcSUOOGtb6pXVA',
'பதிப்பு': {
'உருவாக்கப்பட்டது': '7100299'
}
}
}
}
}
முடிவுரை
இந்த வழிகாட்டி புதிய குறியீடுகளை உருவாக்க அட்டவணை API ஐ உருவாக்க எப்படி மீள் தேடல் மூலம் வேலை செய்வது என்று விவாதித்தது. குறியீடுகள் மற்றும் உள்ளமைவு அமைப்புகளுக்கு பொருத்தமான பெயர்களை எவ்வாறு உருவாக்குவது என்பதையும் நாங்கள் விவாதித்தோம்.
இந்த வழிகாட்டியைப் பயன்படுத்துவதன் மூலம், நீங்கள் இப்போது Elasticsearch API ஐப் பயன்படுத்தி குறியீடுகளை உருவாக்கலாம் மற்றும் பார்க்கலாம்.