का उपयोग करके 'शुरूआत' के बजाय 'शामिल' खोज कैसे करें, हम ग्राहकों की वेबसाइट पर पूर्ण टेक्स्ट खोज को लागू करने के लिए लुसेन.NET का उपयोग करते हैं। खोज स्वयं ही पहले से ही काम करती है लेकिन अब हम एक संशोधन लागू करना चाहते हैं।Lucene.Net
वर्तमान में सभी शर्तों को *
संलग्न किया गया है जो ल्यूसीन को StartsWith
खोज के रूप में वर्गीकृत करने के लिए प्रेरित करता है।
भविष्य में हम एक ऐसी खोज करना चाहेंगे जो StartsWith
की बजाय Contains
की तरह कुछ करे।
हम
- Lucene.Net 2.9.2.2
- StandardAnalyzer
- डिफ़ॉल्ट QueryParser
नमूने का उपयोग करें:
(Title:Orch*)
मैचों: Orchestra
लेकिन:
(Title:rch*)
से मेल नहीं खाता: Orchestra
हम पहले और दूसरे दोनों मैच Orchestra
करना चाहते हैं।
मूल रूप से मैं चाहता हूँ कि इस सवाल में पूछा गया था की ठीक विपरीत है, मैं क्यों इस व्यक्ति के लिए Lucene एक Contains
प्रदर्शन किया और एक StartsWith
डिफ़ॉल्ट रूप से बजाय यकीन नहीं है:
Why is this Lucene query a "contains" instead of a "startsWith"?
हम कैसे कर सकते हैं यह होता है?
मुझे लगता है कि विश्लेषक के साथ इसका कुछ संबंध है लेकिन मुझे यकीन नहीं है।
खोज इंजन चश्मे अक्सर "Google की तरह करते हैं" के रूप में, आप कह सकते हैं कि Google इसे अनुमति नहीं देता है। "चेस्ट्रा" की खोज करने का प्रयास करें;) – mathieu
थैक्स, जो कि मैं खुद ही कार्य के संबंध में खोज रहा था: वैसे ही, ग्राहक वास्तव में यह चाहता है और तर्क के खिलाफ प्रतिरोधी है;) इसके अलावा यह वास्तव में एक गैर प्राकृतिक खोज है बैंड नाम और घटना विवरण ताकि स्टेमिंग/समानार्थी इत्यादि जैसी चीजें इस मामले में आदर्श न हों। वैसे भी अब महान काम करता है thx! – ntziolis
'SetAllowLeadingWildcard (true)' का उपयोग करने के गंभीर प्रदर्शन दंड की निगरानी - उपर्युक्त उत्तर में इसके बारे में केवल एक संकेत है। इसके अलावा, आपके इच्छित उपयोग के आधार पर, आप एन-ग्राम में देखना चाहेंगे - शिंगलफिल्टर जैसे कि एक्सडरैप ने दूसरे जवाब में सुझाव दिया था। – synhershko