2011-09-06 8 views
6

मुझे नया साइटकोर। खोज एपीआई का उपयोग करके सॉर्ट करने और फ़िल्टर करने का कोई तरीका नहीं मिला। Lucene निम्न विधियों प्रदान करता है:नए साइटकोर का उपयोग करके सॉर्ट/फ़िल्टर कैसे करें। खोज एपीआई

Search(Query query, Filter filter) 
Search(Query query, Sort sort) 
Search(Query query, Filter filter, Sort sort) 

लेकिन मुझे नहीं लगता कि Sitecore.Search एपीआई इन सुविधाओं को उजागर करता है। क्या मैं कुछ भूल रहा हूँ? क्या कोई कृपया बता सकता है कि नए साइटकोर के साथ फ़िल्टर और सॉर्ट कैसे करें। खोज एपीआई? या मुझे इसे प्राप्त करने के लिए लपेटा Searcher.Search(Query, Sort) का उपयोग करने की आवश्यकता है?

मैं साइटकोर 6.5 का उपयोग कर रहा हूं।

धन्यवाद।

+0

क्या आप फ़िल्टर करना चाहते हैं? –

+0

@ लैविंस्की - हां, मैंने इंडेक्सशर्च कॉन्टेक्स्ट क्लास को बढ़ाया और आवश्यक विधियों का खुलासा किया, जैसा कि techphoria414 द्वारा सुझाया गया है। कृपया नीचे स्वीकृत उत्तर देखें। – Sudeep

उत्तर

13

आप Lucene.Net.Search.Sort ऑब्जेक्ट को स्वीकार करने वाले तरीकों के लिए IndexSearchContext का विस्तार कर सकते हैं। मेरी टीम के सदस्यों में से एक ने इसे समझ लिया और यह बहुत साफ है।

public class SortableIndexSearchContext : IndexSearchContext 
{ 
public SortableIndexSearchContext(ILuceneIndex index) 
{ 
Initialize(index, true); 
} 
public SearchHits Search(Query query, Sort sort) 
{ 
return Search(query, SearchContext.Empty, sort); 
} 
public SearchHits Search(PreparedQuery query, Sort sort) 
{ 
return new SearchHits(Searcher.Search(query.Query, sort)); 
} 
public SearchHits Search(QueryBase query, Sort sort) 
{ 
return Search(query, SearchContext.Empty, sort); 
} 
public SearchHits Search(string query, Sort sort) 
{ 
return Search(query, SearchContext.Empty, sort); 
} 
public SearchHits Search(Query query, ISearchContext context, Sort sort) 
{ 
return Search(Prepare(query, context), sort); 
} 
public SearchHits Search(QueryBase query, ISearchContext context, Sort sort) 
{ 
return this.Search(Prepare(Translate(query), context), sort); 
} 
public SearchHits Search(string query, ISearchContext context, Sort sort) 
{ 
return this.Search(Parse(query, context), sort); 
} 
} 
+0

ऐसा सोचा। उदाहरण के लिए धन्यवाद techphoria414। मैं इसे आज़माउंगा। – Sudeep

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