asp.net - lucene.net - search term too short? -


हैलो मेरे पास एक प्रकार का लुसेन वाला अनुप्रयोग है, जब मैं "a", "a *", "a "," एक * ", ...

एक त्रुटि फेंक:

Ausnahmedetails: Lucene.Net.Search.BooleanQuery + TooManyClauses: Systemfehler

Quellfehler:

  Zeile 130: Zeile 131: मंद खोजकर्ता IndexSearcher = नई IndexSearcher के रूप में (rootpath + "\" + index_root) 'सर्च auf diesem Verzeichnis Zeile 132: मंद हिट हिट के रूप में = searcher.Search (क्वेरी ) Zeile 133: Zeile 134:  

लेकिन तीन या अधिक अक्षरों वाले शब्दों में कोई त्रुटि नहीं होती।

मैं वास्तव में इसके बारे में उलझन में हूं।

अधिक कोड:

 <कोड> सार्वजनिक उप lucene_search (ByVal strSuchbegriff स्ट्रिंग के रूप में) मंद पार्सर QueryParser मंद क्वेरी क्वेरी हैं (check_volltextsuche.Checked = सच और check_dateinamensuche.Checked = झूठी) के रूप में के रूप में फिर पार्स = नई क्वेरी पार्सर ("बॉडीटेक्स्ट", विश्लेषक) 'बॉडीटेक्स्ट = टाइपफेल घ der wird कोशिश क्वेरी durchsucht = parser.Parse (strSuchbegriff) पकड़ो meldung.Text = "Falsche Verwendung der Suchsyntax" क्वेरी = parser.Parse ( "Suchsyntax") ItemsGrid.Visible = झूठी myexception = सच समाप्ति elseif (प्रयास करें check_volltextsuche.Checked = झूठे और check_dateinamensuche.Checked = सच) फिर पार्सर = नई QueryParser ( "शीर्षक", विश्लेषक) की कोशिश करो क्वेरी = parser.Parse (strSuchbegriff) '* उम TEILE danach zu FINDEN - & gt; gesamten फ़ाइल नाम durchsuchen पकड़ने meldung.Text = "Falsche Verwendung der Suchsyntax" क्वेरी = parser.Parse ( "Suchsyntax") ItemsGrid.Visible = झूठी myexception = सच समाप्ति प्रयास करें वरना पार्सर = नई MultiFieldQueryParser (नया [स्ट्रिंग] () { "शीर्षक" , "bodytext"}, न्यू StandardAnalyzer ()) क्वेरी आज़माएं = parser.Parse (strSuchbegriff) meldung.Text = "Falsche Verwendung der Suchsyntax" क्वेरी = parser.Parse ( "Suchsyntax" पकड़ो) ItemsGrid.Visible = झूठी myexception = सच समाप्ति यदि '################' खोज करें समाप्त प्रयास करें ## '################ तो myexception = झूठी फिर मंद खोजकर्ता इंडेक्ससियरचर = न्यू इंडीजसाइचर (रूटपाथ + "\" + इंडेक्स_रोट) के रूप में 'स्यूशे अूफ डेममें वेर्जेचीनिस मंद हिट हिट्स हिट्स = खोजकर्ता एस' Earch (query) '& lt; - त्रुटि  

धन्यवाद अग्रिम में:>

आप यकीन है कि यह के लिए असफल रहने के है कर रहे हैं बस" एक "के रूप में अच्छी तरह से?

के लिए" एक * "और" एक * "मामलों, कारण यह विफल रहता है क्योंकि Lucene चला है कि एक में अभिव्यक्ति < Em> उपसर्ग खोज और मूल रूप से "a" (या "a") से शुरू होने वाले सूचकांक में निर्धारित सभी शर्तों के साथ एक विशाल "OR" क्वेरी में बदल जाता है। इसलिए यदि आपके पास "आर्डवार्क", "एंटरर", "पशु", आदि हैं, तो "ए *" ही "वार्डवार्क या एंप्लर या पशु या" ... के समान है

लन्सेन की एक सीमा भी है शब्दों की संख्या पर आप "OR" क्वेरी में गठजोड़ कर सकते हैं, डिफ़ॉल्ट रूप से यह बहुत छोटा है (क्योंकि बहुत से शब्द प्रभाव को गंभीर रूप से प्रभावित कर सकते हैं) और यदि बहुत अधिक शर्तें हैं, तो यह BooleanQuery + TooManyClauses को फेंक देगा अपवाद है कि आप पाया

आप शायद आपको लगेगा कि जैसे "एक्स *" या एक प्रश्न "QR *" एक अपवाद फेंक नहीं है:। इस वजह से आप (संभावना) कई नहीं है "X" या "qr" से शुरू होने वाले शब्द।

समस्या को ठीक करने के लिए आपके पास कुछ विकल्प हैं:

  1. क्वेरी आगे परिशोधित करें, बस एकल-अक्षर उपसर्ग प्रश्नों
  2. सबसे पहले कॉल करके अधिकतम खंड संख्या बढ़ाएं (मैं इसे से बचने की कोशिश करूंगा, हालांकि, क्योंकि यह मैंने कहा था कि प्रदर्शन को प्रभावित कर सकता है)

Comments

Popular posts from this blog

Eclipse CDT variable colors in editor -

AJAX doesn't send POST query -

wpf - Custom Message Box Advice -