हमारे पास फिल्मों और श्रृंखला का डेटाबेस है, और चूंकि डेटा अलग-अलग विश्वसनीयता के कई स्रोतों से आता है, इसलिए हम एपिसोड के शीर्षक पर फ़ज़ी स्ट्रिंग मिलान करने में सक्षम होना चाहते हैं। हम अपने आवेदन में खोज के लिए सोलर का उपयोग कर रहे हैं, लेकिन डिफ़ॉल्ट मिलान तंत्र शब्द स्तर पर काम करते हैं, जो लघु तारों के लिए पर्याप्त नहीं है, जैसे शीर्षकएन-ग्राम सोलर के साथ अनुमानित मिलान का उपयोग कैसे करें?
मैंने अतीत में अनुमानित मिलान के एन-ग्राम का उपयोग किया था, और मैं था यह जानकर बहुत खुशी हुई कि ल्यूसीन (और सोलर) बॉक्स से बाहर कुछ का समर्थन करता है। दुर्भाग्य से, मैं इसे सही तरीके से कॉन्फ़िगर करने में सक्षम नहीं हूं।
मैं मान लिया है कि मैं इस के लिए एक विशेष क्षेत्र प्रकार की जरूरत है, तो मैं मेरी Schema.xml के लिए निम्न क्षेत्र प्रकार कहा:
<fieldType
name="trigrams"
stored="true"
class="solr.StrField">
<analyzer type="index">
<tokenizer
class="solr.analysis.NGramTokenizerFactory"
minGramSize="3"
maxGramSize="5"
/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
और करने के लिए स्कीमा में उपयुक्त क्षेत्र बदल दिया है:
<field name="title" type="trigrams"
indexed="true" stored="true" multiValued="false" />
हालांकि, यह मेरी अपेक्षा के अनुसार काम नहीं कर रहा है। क्वेरी विश्लेषण सही ढंग से दिखता है, लेकिन मुझे कोई परिणाम नहीं मिलते हैं, जो मुझे विश्वास दिलाता है कि इंडेक्स समय पर कुछ होता है (यानी शीर्षक को ट्रिगर फ़ील्ड के बजाय डिफ़ॉल्ट स्ट्रिंग फ़ील्ड की तरह अनुक्रमित किया जाता है)।
क्वेरी मैं कोशिश कर रहा हूँ की तरह
title:"guy walks into a psychiatrist office"
(लिखने में कोई त्रुटि के साथ या दो) कुछ है और यह मैच चाहिए "लड़का एक मनोचिकित्सक कार्यालय में वॉक्स"।
(मैं वास्तव में यकीन है कि अगर क्वेरी सही है नहीं कर रहा हूँ।)
इसके अलावा, मैं वास्तव में अधिक कुछ करने के लिए सक्षम होने के लिए करना चाहते हैं। मैं स्ट्रिंग को कम करना चाहता हूं, सभी विराम चिह्नों और रिक्त स्थान को हटाएं, अंग्रेज़ी स्टॉपवर्ड हटाएं और फिर स्ट्रिंग को ट्रिग्राम में बदलें। हालांकि, फ़िल्टर केवल टोकन के बाद लागू किए जाने के बाद लागू होते हैं ...
आपके उत्तरों के लिए अग्रिम धन्यवाद।
आप क्वेरी का उपयोग कर रहे पोस्ट कर सकते हैं? – olle
मैंने एक उदाहरण क्वेरी शामिल करने के लिए प्रश्न संपादित किया। –