शीर्षक कहता है, फुलटेक्स्ट इंडेक्स क्या है और मुझे इसका उपयोग कब करना चाहिए?फुलटेक्स्ट इंडेक्स क्या है और मुझे इसका उपयोग कब करना चाहिए?
उत्तर
डेटाबेस में इंडेक्स आमतौर पर आपके क्लॉज में परिभाषित कुछ की तलाश करते समय प्रदर्शन को बढ़ाने के लिए उपयोग किए जाते हैं। हालांकि जब कुछ पाठ फ़िल्टर करने की बात आती है, उदा। WHERE TextColumn LIKE '%searchstring%'
जैसे कुछ का उपयोग करके खोज धीमी होती है, क्योंकि जिस तरह से नियमित डेटाबेस इंडेक्स काम करता है, कॉलम की 'पूरी सामग्री' के खिलाफ मैचों के लिए अनुकूलित किया जाता है और न केवल इसका एक हिस्सा। विशेष रूप से LIKE खोज जिसमें वाइल्डकार्ड शामिल हैं, किसी भी प्रकार की अनुक्रमणिका का उपयोग नहीं कर सकते हैं।
जैसा कि नीचे दिए गए टिप्पणी में बताया गया है MySQL को पूर्ण टेक्स्ट सूचकांक में खोजने के लिए MATCH() ... AGAINST
वाक्यविन्यास की आवश्यकता है; बीटीडब्लू यह डेटाबेस विक्रेता के आधार पर भिन्न होता है। एमएस एसक्यूएल में आप CONTAINS
का उपयोग कर सकते हैं, इसलिए जब आप अन्य डेटाबेस का समर्थन करने की योजना बनाते हैं तो इसे ध्यान में रखें।
फुलटेक्स्ट इंडेक्स नियमित पाठ के लिए बेहतर काम करते हैं, क्योंकि इन प्रकार के कॉलम के लिए उन्हें अनुकूलित किया जाता है। बहुत सरल: उन्होंने पाठ को शब्दों में विभाजित किया और शब्दों पर एक सूचकांक बना दिया, न कि संपूर्ण पाठ। यह विशिष्ट शब्दों की तलाश करते समय टेक्स्ट खोजों के लिए बहुत तेज़ काम करता है।
FULLTEXT इंडेक्स LIKE क्लॉज के लिए कुछ भी नहीं करेंगे - वे केवल 'MATCH() ... के खिलाफ खंडों के लिए उपयोग किए जाएंगे। जैसे कि '%' वाइल्डकार्ड से शुरू होने वाले क्लॉज को प्रभावी रूप से * किसी * प्रकार के इंडेक्स द्वारा नहीं बढ़ाया जा सकता है और हमेशा धीमा होगा। इस कारण से इस तरह के LIKE खंड को टालना चाहिए जब तक कि पहले से ही रिकॉर्ड्स की एक छोटी संख्या को फ़िल्टर न किया जाए। – thomasrutter
तो दूसरे शब्दों में, यदि आप पूरे स्ट्रिंग के खिलाफ सटीक मिलान की तलाश में हैं, तो FULLTEXT अनुक्रमणिका का उपयोग करने के लिए गलत बात है? – aroth
@aroth पूरे स्तंभ सामग्री पर खोज करते समय एक पूर्ण टेक्स्ट सूचकांक लाभकारी नहीं होगा, हां। – Alex
एक पूर्ण पाठ अनुक्रमणिका एक इंडेक्स है जो आप एक MySQL डेटाबेस में उन पाठ फ़ील्ड में लागू करते हैं जिन्हें आप पूर्ण टेक्स्ट खोज चलाने की योजना बनाते हैं। एक पूर्ण पाठ खोज match(field) against('text')
वाक्यविन्यास का उपयोग करती है। यदि आप एक पूर्ण पाठ खोज को चलाने के लिए चाहते हैं तो आपके पास कॉलम पर एक पूर्ण टेक्स्ट इंडेक्स होना चाहिए जिसके विरुद्ध आप इसे चलाएंगे।
तीन प्रकार की पूर्ण पाठ खोज हैं। मैं मैन्युअल बोली होगा, क्योंकि मुझे लगता है कि यह सबसे अच्छा कहते हैं:
बूलियन खोज खोज एक विशेष क्वेरी भाषा के नियमों का उपयोग कर स्ट्रिंग व्याख्या करता है। स्ट्रिंग में खोजने के लिए शब्द शामिल हैं। यह में ऑपरेटरों को भी शामिल किया जा सकता है कि ऐसी आवश्यकताओं को निर्दिष्ट करें जैसे पंक्तियों से मेल खाने में मौजूद या अनुपस्थित होना चाहिए, या इसे सामान्य से अधिक या कम भारित किया जाना चाहिए। सामान्य "कुछ" या "फिर" जैसे शब्द स्टॉपवर्ड हैं और यदि खोज स्ट्रिंग में मौजूद हैं तो मेल नहीं खाते। IN BOOLEAN मोड संशोधक एक बूलियन खोज निर्दिष्ट करता है। अधिक जानकारी के लिए, अनुभाग 11.9.2, "बूलियन पूर्ण-पाठ खोजें" देखें।
एक प्राकृतिक भाषा खोज प्राकृतिक मानव भाषा में वाक्यांश के रूप में खोज स्ट्रिंग को व्याख्या करती है ( वाक्यांश मुक्त पाठ में)। विशेष ऑपरेटर नहीं हैं। स्टॉपवर्ड सूची लागू होती है। इसके अतिरिक्त, पंक्तियों में से 50% या अधिक पंक्तियों में मौजूद सामान्य मानते हैं और मेल नहीं खाते हैं। पूर्ण-पाठ खोज प्राकृतिक भाषा खोज हैं यदि कोई संशोधक दिया गया है।
एक प्रश्न विस्तार खोज प्राकृतिक भाषा खोज का एक संशोधन है। खोज स्ट्रिंग का उपयोग पर किया जाता है, जो एक प्राकृतिक भाषा खोज करता है। फिर खोज द्वारा लौटाए गए सबसे प्रासंगिक पंक्तियों से शब्द खोज स्ट्रिंग में जोड़ा गया है और खोज फिर से की गई है। क्वेरी दूसरी खोज से पंक्तियों देता है। QUERY विस्तार संशोधक एक क्वेरी विस्तार खोज निर्दिष्ट करता है। अधिक जानकारी के लिए, अनुभाग 11.9.3, देखें "क्वेरी विस्तार के साथ पूर्ण-पाठ खोजें"।
अधिक जानकारी के लिए Full Text Search Reference Page पर एक हंस ले।
- 1. एक स्थानिक इंडेक्स क्या है और मुझे इसका उपयोग कब करना चाहिए?
- 2. ऐपडिलेगेट क्या है और मुझे इसका उपयोग कब करना है?
- 3. डीएसएल क्या है और मुझे इसका उपयोग कहां करना चाहिए?
- 4. पीडीओ क्या है और मुझे इसका उपयोग क्यों करना चाहिए?
- 5. NHibernate क्या है और मुझे इसका उपयोग क्यों करना चाहिए?
- 6. दोस्त == या << मुझे इसका उपयोग कब करना चाहिए?
- 7. मुझे ओरेकल की इंडेक्स संगठित तालिका का उपयोग कब करना चाहिए? या, मुझे कब नहीं चाहिए?
- 8. अलगाव स्तर - Serializable। मुझे इसका उपयोग कब करना चाहिए?
- 9. सी # मुझे सूची का उपयोग कब करना चाहिए और मुझे सरणीसूची का उपयोग कब करना चाहिए?
- 10. हटाएं पर ROWLOCK का उद्देश्य क्या है और मुझे इसका उपयोग कब करना चाहिए?
- 11. एक्सएमएल के लिए अच्छा क्या है और मुझे इसका उपयोग कब करना चाहिए?
- 12. एक MvcHtmlString क्या है और मुझे इसका उपयोग कब करना चाहिए?
- 13. मुझे _aligned_malloc() का उपयोग कब करना चाहिए?
- 14. मुझे डेटाबेस इंडेक्स कब बनाना चाहिए?
- 15. मुझे ConcurrentSkipListMap का उपयोग कब करना चाहिए?
- 16. मुझे CompiledQuery का उपयोग कब करना चाहिए?
- 17. मुझे पैरामीटर का उपयोग कब करना चाहिए?
- 18. मुझे सेफफोर्स का उपयोग कब करना चाहिए?
- 19. मुझे GC.SuppressFinalize() का उपयोग कब करना चाहिए?
- 20. उद्देश्य-सी में, मुझे कक्षा विधियों का उपयोग कब करना चाहिए और मुझे उदाहरण विधियों का उपयोग कब करना चाहिए?
- 21. मुझे std_logic_vector का उपयोग कब करना चाहिए और मुझे अन्य डेटा प्रकारों का उपयोग कब करना चाहिए?
- 22. मुझे अपाचे कॉमन्स 'Validate.isTrue का उपयोग कब करना चाहिए, और मुझे केवल' assert 'कीवर्ड का उपयोग कब करना चाहिए?
- 23. एक नकली क्या है और आप इसका कब उपयोग करना चाहिए?
- 24. क्या मुझे SQL सर्वर में थोड़ा फ़ील्ड इंडेक्स करना चाहिए?
- 25. एसक्यूएल सर्वर: सामान्य इंडेक्स बनाम फुलटेक्स्ट इंडेक्स
- 26. मुझे remove_reference और add_reference का उपयोग कब करना चाहिए?
- 27. मुझे पेरर ("...") और fprintf (stderr, "...") का उपयोग कब करना चाहिए?
- 28. Request.InputStream क्या है और इसका उपयोग कब करें?
- 29. मुझे गिट एड का उपयोग कब करना चाहिए?
- 30. मुझे बिल्डर डिजाइन पैटर्न का उपयोग कब करना चाहिए?
कृपया अपने प्रश्न का पुन: प्रयास करें। तुम क्या जानना चाहते हो? "पूर्ण टेक्स्ट इंडेक्स का उपयोग कब करें" के द्वारा आपका क्या मतलब है - स्पष्ट उत्तर के अलावा "जब आप पूर्ण टेक्स्ट खोज करने की योजना बनाते हैं"? –