2009-08-20 17 views
7

मैं लुसीन.Net में एकाधिक फ़ील्ड में फ़िल्टर कैसे कर सकता हूं? एक फ़ील्ड पर मैं बस करता हूं:lucene.net एकाधिक फ़िल्टर को जोड़ती है और कोई खोज शब्द

TermQuery tool = new TermQuery(new Term("Tool", "Nail")); 
Filter f = new QueryFilter(tool); 

अगर मैं फ़िल्टर में एक नाखून लंबाई जोड़ना चाहता था, तो मैं यह कैसे कर सकता हूं?

इसके अलावा, मैं चाहता हूं कि उपयोगकर्ता कोई खोज शब्द (यानी केवल एक श्रेणी चुनकर) खोज करने में सक्षम हो, मैं यह कैसे कर सकता हूं?

उत्तर

12

मुझे लगता है कि आप दो सवाल ...

प्रश्न 1 पूछ रहे हैं: एक अतिरिक्त फ़िल्टर

याद रखें जोड़ना, QueryFilterस्वीकार करता है किसी भी क्वेरी (न केवल TermQuery)। इसलिए, आप उन मानदंडों के BooleanQuery बना सकते हैं जिन्हें आप फ़िल्टर करना चाहते हैं।

TermQuery toolQuery = new TermQuery(new Term("Tool", "Nail")); 
TermQuery nailLengthQuery = new TermQuery(new Term("NailLength", "3 inches")); 

BooleanQuery filterQuery = new BooleanQuery(); 
filterQuery.add(toolQuery, BooleanClause.Occur.MUST); 
filterQuery.add(nailLengthQuery, BooleanClause.Occur.MUST); 

Filter f = new QueryFilter(filterQuery); 

प्रश्न 2: एक खोज पद

उपयोगकर्ता, आप एक MatchAllDocsQuery क्वेरी का उपयोग कर खोज कर सकते हैं तो कोई खोज शब्द प्रदान करता है तो बिना सर्च कर रहे हैं।

संबंधित मुद्दे