當編譯時未知術語時,是否有推薦的方法來使用StartsWith搜索多個術語中的每一個?RavenDB使用Starts搜索多個術語中的每一個
我設想是這樣的:
var searchTerms = "John Doe".Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var query = session.Query<Person, PersonIndex>()
.Where(x => x.FirstName.StartsWithAnyOf(searchTerms) ||
x.LastName.StartsWithAnyOf(searchTerms));
的查詢是等價的:
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或類似)的答案嗎?
我不認爲'.Search'會做我想做的事情,當搜索字符串是_Jo_,_Do_,_Jo Doe_,_Jo Do_時,我想返回_John Doe_。我不認爲'.Search'會返回_John Doe_,除非我匹配其中一個分析的術語? – kendaleiv
只是爲了澄清,我的意思是當搜索字符串是**任何**。 – kendaleiv