का उपयोग कर एकाधिक शर्तों में से प्रत्येक के लिए खोज करता है क्या स्टार्ट्स का उपयोग करते हुए एकाधिक शब्दों में से प्रत्येक को खोजने का एक अनुशंसित तरीका है जब शब्दों को संकलित समय पर ज्ञात नहीं किया जाता है?RavenDB StartsWith
मैं कुछ इस तरह की कल्पना:
var query = session.Query<Person, PersonIndex>()
.Where(x => x.FirstName.Starts(searchTerms[0]) ||
x.LastName.StartsWith(searchTerms[0]) ||
x.FirstName.Starts(searchTerms[1]) ||
x.LastName.StartsWith(searchTerms[1]));
जवाब कार्यावधि में एक LINQ क्वेरी बनाने के लिए (PredicateBuilder या समान) है:
var searchTerms = "John Doe".Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var query = session.Query<Person, PersonIndex>()
.Where(x => x.FirstName.StartsWithAnyOf(searchTerms) ||
x.LastName.StartsWithAnyOf(searchTerms));
क्वेरी के बराबर हो सकता है?
मुझे नहीं लगता कि 'खोज' जो मैं चाहता हूं वह करूँगा, मैं _John Doe_ वापस करना चाहता हूं जब खोज स्ट्रिंग _Jo_, _Do_, _Jo Doe_, _Jo Do_ है। मुझे नहीं लगता कि '.Search' वापस लौटाएगा जॉन जॉय_ जब तक कि मैं विश्लेषण शर्तों में से किसी एक से मेल नहीं खाता? – kendaleiv
बस स्पष्ट करने के लिए, मेरा मतलब है कि जब खोज स्ट्रिंग ** ** में से कोई है। – kendaleiv