வடிகட்டி பிரித்தெடுத்தல்: ரெக்ஸ் சொல் எல்லை பொருத்துதல்
இந்த கட்டுரை, சொல் எல்லை ரெக்ஸ் பொருத்துதல் மூலம் இயற்கை மொழி தேடல் வினவல்களிலிருந்து கட்டமைக்கப்பட்ட தயாரிப்பு வடிகட்டிகளை நாம் எவ்வாறு பிரித்தெடுக்கிறோம் என்பதை விளக்குகிறது. இது சொற்றொடர்-முதல்-வடிகட்டி கோர்த்தல் வரைபடங்களுக்கு எதிராக செயல்படும்.
பிரச்சனை: இயற்கை மொழியில் இருந்து கட்டமைக்கப்பட்ட வடிகட்டிகளுக்கு
ஒரு பயனர் "mini pc with 16gb ram" என்று தேடும்போது, நாம் பிரித்தெடுக்க வேண்டும்:
{
"Form Factor": "Mini PC",
"Main Memory": "16"
}
இந்த கட்டமைக்கப்பட்ட வடிகட்டிகள் இவற்றை சாத்தியமாக்குகின்றன:
-
தயாரிப்பு வடிகட்டுதல்: பொருந்தும் தயாரிப்புகளை மட்டும் காட்டுதல்
-
முகப்பு வழிசெலுத்தல்: கிடைக்கக்கூடிய வடிகட்டி விருப்பங்களைக் காண்பித்தல்
-
வினவல் பக்க உருவாக்கம்: SEO-உகந்த பக்கங்களை உருவாக்குதல்
-
தொடர்புடைய தேடல்கள்: ஒத்த வினவல்களைக் கண்டறிதல்
இதே நோக்கத்தை பயனர்கள் வெளிப்படுத்தும் அனைத்து வழிகளையும் கையாள்வதே சவாலாக உள்ளது.
அல்காரிதம்: சொல் எல்லை ரெக்ஸ் பொருத்துதல்
படி 1: சொற்றொடர் கோர்த்தல் வரைபடங்களை ஏற்றுதல்
SEO குழாய்வழியால் உருவாக்கப்பட்ட சொற்றொடர்-முதல்-வடிகட்டி கோர்த்தல் வரைபடங்களை நாம் ஏற்றுகிறோம். இந்த கோர்த்தல் வரைபடங்கள் சொற்றொடர்களை வடிகட்டி மதிப்புகளுடன் இணைக்கின்றன, இது சொற்றொடரிலிருந்து தொடர்புடைய வடிகட்டி சாவி மற்றும் மதிப்பைக் கண்டறிய அனுமதிக்கிறது.
விரைவான கண்டுபிடிப்பிற்காக நாம் இந்த கட்டமைப்பை தலைகீழாக மாற்றுகிறோம், இதனால் வடிகட்டியை விட சொற்றொடர் மூலம் தேடலாம்:
phrase_to_filter = {
"16gb ram": ("Main Memory", "16"),
"16 gb ram": ("Main Memory", "16"),
"mini pc": ("Form Factor", "Mini PC"),
"mini computer": ("Form Factor", "Mini PC")
}
படி 2: வினவலை இயல்பாக்குதல்
வினவலை சிற்றெழுத்தாக மாற்றி, எழுத்துப்பொருள்-சார்பற்ற பொருத்துதலுக்கு வசதி செய்கிறோம்.
படி 3: சொல் எல்லைகளுடன் சொற்றொடர்களை பொருத்துதல்
கோர்த்தல் வரைபடங்களில் உள்ள ஒவ்வொரு சொற்றொடருக்கும், அது வினவலில் தோன்றுகிறதா என்பதை வழக்கமான வெளிப்பாடுகளில் சொல் எல்லை நங்கூரங்களைப் பயன்படுத்தி சரிபார்க்கிறோம்.
\b நங்கூரங்கள் முழுச் சொற்களை பொருத்துவதை உறுதி செய்கின்றன, உபசரங்களை அல்ல: "mini pc" என்பது "mini pc with ram" உடன் பொருந்தும் ஆனால் "minipc" (இடைவெளி இல்லை) உடன் பொருந்தாது. "16gb" என்பது "16gb ram" உடன் பொருந்தும் ஆனால் "216gb" (பகுதி பொருத்துதல்) உடன் பொருந்தாது.
படி 4: அனைத்து பொருத்தங்களையும் சேகரித்தல்
அனைத்து சொற்றொடர்களையும் நாம் மீள்செய்து, பொருந்தும் வடிகட்டிகளை சேகரிக்கிறோம். "mini pc with 16gb ram" க்கு, இது {"Form Factor": "Mini PC", "Main Memory": "16"} போன்ற வடிகட்டிகளை உருவாக்குகிறது.
ஏன் சொல் எல்லைகள்?
சொல் எல்லைகள் தவறான பொருத்தங்களைத் தடுக்கின்றன:
சொல் எல்லைகள் இல்லாமல்:
-
"i5" என்பது "i5000" உடன் பொருந்தும் (தவறு)
-
"ram" என்பது "program" உடன் பொருந்தும் (தவறு)
-
"pc" என்பது "pcie" உடன் பொருந்தும் (தவறு)
சொல் எல்லைகளுடன்: "i5" என்பது "i5 processor" உடன் பொருந்தும் ✅ ஆனால் "i5000" உடன் பொருந்தாது ❌; "ram" என்பது "16gb ram" உடன் பொருந்தும் ✅ ஆனால் "program" உடன் பொருந்தாது ❌. \b நங்கூரம் சொல் விளிம்புகளில் மட்டுமே பொருந்துவதை உறுதி செய்கிறது.
பல பொருத்தங்களைக் கையாள்தல்
ஒரே வடிகட்டியில் பல சொற்றொடர்கள் பொருந்தினால், கடைசி பொருத்தம் வெல்லும்:
# வினவல்: "mini pc small computer"
# "mini pc" மற்றும் "small computer" இரண்டும் "Form Factor:Mini PC" க்கு கோர்க்கப்பட்டுள்ளன
# முடிவு: {"Form Factor": "Mini PC"} (நகல் நீக்கப்பட்டது)
ஒரே வடிகட்டிக்கு வெவ்வேறு மதிப்புகளுடன் பல சொற்றொடர்கள் பொருந்தினால், கடைசி பொருத்தம் வெல்லும்:
# வினவல்: "8gb 16gb ram"
# "8gb" → Main Memory:8
# "16gb" → Main Memory:16
# முடிவு: {"Main Memory": "16"} (கடைசி பொருத்தம் வெல்லும்)
நடைமுறையில், பயனர்கள் முரண்பட்ட மதிப்புகளை அரிதாகவே குறிப்பிடுகிறார்கள், எனவே இது ஒரு பிரச்சனையல்ல.
சொற்றொடர் முன்னுரிமை
சொற்றொடர்கள் கோர்த்தல் வரைபடங்களில் தோன்றும் வரிசையில் பொருந்துகின்றன. கோர்த்தல் வரைபடங்கள் ஒற்றுமையால் (மிக உயர்ந்தது முதலில்) பின்னர் நீளத்தால் (குறுகியது முதலில்) வரிசைப்படுத்தப்பட்டிருப்பதால், உயர்தரமான பொருத்தங்கள் முதலில் சரிபார்க்கப்படுகின்றன. இருப்பினும், நாம் அனைத்து சொற்றொடர்களையும் மீள்செய்வதால், வரிசை இறுதி முடிவை பாதிக்காது—கடைசி பொருத்தம் வெல்லும்.
செயல்திறன் மேம்பாடு
தற்காலிக சேமிப்பு (캐싱)
சொற்றொடர்-முதல்-வடிகட்டி கோர்த்தல் வரைபடம் தொடக்கத்தில் ஒருமுறை ஏற்றப்பட்டு நினைவகத்தில் தற்காலிகமாக சேமிக்கப்படுகிறது, இது ஒவ்வொரு கோரிக்கையிலும் மீண்டும் மீண்டும் வட்டு I/O ஐ தவிர்க்கிறது.
வால்கீ காப்பு வழி
முதலில் வால்கீ (ரெடிஸ் கிளை) இலிருந்து கோர்த்தல் வரைபடங்களை ஏற்ற முயற்சிக்கிறோம், JSON கோப்புகளுக்கு காப்பு வழியாக செல்கிறோம்:
- விரைவான நினைவக-உள் கண்டுபிடிப்பிற்காக வால்கீயை சரிபார்க்கவும்
- வால்கீ தவறினால் JSON இலிருந்து ஏற்றவும்
- தற்காலிக காலாவதியுடன் வால்கீயில் சேமிக்கவும்
இது தொடர்ச்சியான கோரிக்கைகளுக்கான தாமதத்தை குறைக்கிறது.
ரெக்ஸ் பொருத்துதல்
வடிவங்கள் re.search() ஐ பயன்படுத்தி சொல் எல்லை நங்கூரங்களுடன் செயல்படுகின்றன, இது தவறான பகுதி பொருத்தங்கள் இல்லாமல் முழுச் சொற்களை திறமையாக பொருத்த உதவுகிறது.
தேடல் சேவையுடன் ஒருங்கிணைத்தல்
வடிகட்டி பிரித்தெடுத்தல் ஒரு API சேவை முனையமாக செயல்படுத்தப்படுகிறது, இது தேடல் வினவல்களை ஏற்றுக்கொண்டு பிரித்தெடுக்கப்பட்ட வடிகட்டிகளை வழங்குகிறது.
சேவை:
- ஒரு தேடல் வினவலை உள்ளீடாக ஏற்கிறது
- சொற்றொடர்-முதல்-வடிகட்டி கோர்த்தல் வரைபடங்களை நினைவகத்தில் ஏற்றுகிறது
- சொல் எல்லைகளுடன் சொற்றொடர்களை இயல்பாக்கி பொருத்துகிறது
- கட்டமைக்கப்பட்ட வடிகட்டி சாவி-மதிப்பு இணைகளை வழங்குகிறது
முக்கிய வலை சேவையகம் பயனர் வினவல்களிலிருந்து வடிகட்டிகளை பிரித்தெடுக்க இந்த சேவையை அழைக்கிறது:
filters = extract_filters_from_query("mini pc 16gb ram")
# வழங்குகிறது: {"Form Factor": "Mini PC", "Main Memory": "16"}
இந்த கவலை பிரித்தல் அனுமதிக்கிறது:
-
சுயாதீன அளவிடுதல்: வடிகட்டி பிரித்தெடுத்தல் தனி சேவையகத்தில் இயக்கப்படலாம்
-
தற்காலிக சேமிப்பு தனிமைப்படுத்தல்: சேவை அதன் சொந்த கோர்த்தல் தற்காலிக சேமிப்பை நிர்வகிக்கிறது
-
சேவை மறுதொடக்கம்: சேவையை முக்கிய வலை சேவையகத்தை பாதிக்காமல் சுயாதீனமாக மீண்டும் தொடங்கலாம்
விவரங்களுக்கு தேடல் சேவை கட்டமைப்பு ஐப் பார்க்கவும்.
வினவல் பதிவு செய்தல்
ஒவ்வொரு வடிகட்டி பிரித்தெடுத்தலும் SEO குழாய்வழி நுகர்வுக்காக பதிவு செய்யப்படுகிறது. இந்த பதிவுகள் காலப்போக்கில் புதிய வினவல் முறைகளைக் கண்டறிந்து சொற்றொடர் கோர்த்தல் வரைபடங்களை மேம்படுத்துவதற்காக SEO குழாய்வழிக்கு மீண்டும் உள்ளீடாகின்றன.
பயன்பாட்டு வழக்குகள்
வினவல் பக்கங்கள் (/q/)
வினவல் பக்கங்கள் எந்த தயாரிப்புகளைக் காட்டுவது என்பதை தீர்மானிக்க URL ஸ்லக் இலிருந்து வடிகட்டிகளை பிரித்தெடுக்கின்றன.
தேடல் API (/api/search)
தேடல் API தேடல் வினவலிலிருந்து வடிகட்டிகளை பிரித்தெடுத்து பொருந்தும் தயாரிப்புகளைக் கண்டறிந்து வழங்குகிறது.
தானியங்கி நிறைவு
தானியங்கி நிறைவு பரிந்துரைகள் தேடல் பரிந்துரைகளுடன் வடிகட்டி முன்னோட்டங்களை வழங்க வடிகட்டிகளை பிரித்தெடுக்கின்றன.
தொடர்புடைய தேடல்கள்
தொடர்புடைய தேடல் உருவாக்கம் ஒத்த வினவல்களைக் கண்டறிய பிரித்தெடுக்கப்பட்ட வடிகட்டிகளைப் பயன்படுத்துகிறது:
வினவல்: "mini pc 16gb ram"
→ வடிகட்டிகள்: {"Form Factor": "Mini PC", "Main Memory": "16"}
→ ஒத்த வடிகட்டிகளைக் கொண்ட வினவல்களைக் கண்டறிதல்
→ பரிந்துரை: "mini pc 32gb ram", "mini pc 16gb ssd"
விவரங்களுக்கு தொடர்புடைய தேடல் உருவாக்கம் ஐப் பார்க்கவும்.
பிழை கையாளுதல்
கோர்த்தல் வரைபடங்கள் காணாமல் போதல்
சொற்றொடர் கோர்த்தல் வரைபடங்கள் ஏற்றப்படவில்லை என்றால், வெற்று வடிகட்டிகளை வழங்குகிறோம். இது SEO குழாய்வழி இன்னும் இயங்காதபோது செயலிழப்புகளைத் தடுக்கிறது.
தவறான வினவல்கள்
வெற்று அல்லது வெள்ளை இடைவெளி மட்டுமே உள்ள வினவல்கள் வெற்று வடிகட்டிகளை வழங்கும்.
ரெக்ஸ் பிழைகள்
சொற்றொடர்களில் உள்ள சிறப்பு எழுத்துகளிலிருந்து தொடரியல் பிழைகளைத் தடுக்க, ரெக்ஸ் பொருத்துதலுக்கு முன் சொற்றொடர்களை சுத்திகரிக்க ரெக்ஸ் தப்பித்தலைப் பயன்படுத்துகிறோம்.
செயல்திறன் பண்புகள்
சொல் எல்லை ரெக்ஸ் பொருத்துதல் மற்றும் தீவிர தற்காலிக சேமிப்பு காரணமாக வடிகட்டி பிரித்தெடுத்தல் திறமையாக செயல்படுகிறது:
-
கோர்த்தல் வரைபட ஏற்றுதல் தொடக்கத்தில் ஒருமுறை நடக்கிறது
-
ஒரு வினவலுக்கான பிரித்தெடுத்தல் CPU-பிணைக்கப்பட்டது (ரெக்ஸ் பொருத்துதல்