2011-12-03 11 views
5

मैं अपने खोज में आधारित खोज क्वेरी के आधार पर अपने आवेदन में एक साधारण खोज को कार्यान्वित करना चाहता हूं। मान लें कि मेरे पास 2 पैराग्राफ या आलेख वाले सरणी हैं और मैं इन लेखों में संबंधित विषय या संबंधित कीवर्ड के लिए खोजना चाहता हूं।एक सरल स्ट्रिंग खोज को कैसे कार्यान्वित करें

//this is my search query 
string mySearchQuery = "how to play with matches"; 

//these are my articles 
string[] myarticles = new string[] {"article 1: this article will teach newbies how to start fire by playing with the awesome matches..", "article 2: this article doesn't contain anything"}; 

मैं खोज प्रश्न मैं ऊपर प्रदान के आधार पर पहला लेख कैसे प्राप्त कर सकते हैं:

उदाहरण के लिए

? कोई उपाय?

उत्तर

6

यह myarticles में किसी भी स्ट्रिंग वापसी होगी कि शब्दों के सभी शामिल हैं mysearchquery में:

var tokens = mySearchQuery.Split(' '); 
var matches = myarticles.Where(m => tokens.All(t => m.Contains(t))); 

foreach(var match in matches) 
{ 
    // do whatever you wish with them here 
} 
+0

आप शायद एक केस-संवेदी तुलना करना चाहते हैं होगा अगर इस तकनीक प्रयोग किया जाता है (यानी तो मैच मैचों मैच)। ;) –

+0

क्या आप जानते हैं कि गति के संदर्भ में, रेगेक्स के उपयोग के साथ तुलना कैसे की जाती है ?? – GameAlchemist

+0

स्ट्रिंग.ToLower() का उपयोग कर आप इसे और बेहतर बना सकते हैं। तो आपको पूंजीकरण के बारे में चिंता करने की ज़रूरत नहीं है। –

1

मुझे यकीन है कि आप स्ट्रिंग खोज के लिए एक अच्छा ढांचा ठीक कर सकते हैं, क्योंकि यह एक विस्तृत विषय है, और कई खोज नियम प्राप्त हुए हैं।

लेकिन इस सरल नमूने के लिए, खोज क्वेरी को "" के साथ विभाजित करने का प्रयास करें, क्योंकि प्रत्येक शब्द एक साधारण स्ट्रिंग खोज करता है, यदि आपको लगता है, तो अनुच्छेद खोज मिलान में 1 बिंदु जोड़ें, अंत में पैराग्राफ को वापस करें सबसे अधिक अंक ...

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