Có cách nào được đề xuất để tìm kiếm từng cụm từ trong số nhiều cụm từ bằng cách sử dụng StartsWith khi các cụm từ không được biết tại thời gian biên dịch không?Tìm kiếm RavenDB cho từng cụm từ bằng cách sử dụng StartsWith
tôi hình dung một cái gì đó như thế này:
var searchTerms = "John Doe".Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
var query = session.Query<Person, PersonIndex>()
.Where(x => x.FirstName.StartsWithAnyOf(searchTerms) ||
x.LastName.StartsWithAnyOf(searchTerms));
Các truy vấn sẽ là tương đương với:
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]));
là câu trả lời để xây dựng một truy vấn LINQ trong thời gian chạy (PredicateBuilder hoặc tương tự)?
Tôi không nghĩ '.Search' sẽ làm những gì tôi muốn, tôi muốn trả về _John Doe_ khi chuỗi tìm kiếm là _Jo_, _Do_, _Jo Doe_, _Jo Do_. Tôi không nghĩ '.Search' sẽ trả về _John Doe_ trừ khi tôi khớp với một trong các thuật ngữ được phân tích? – kendaleiv
Chỉ cần làm rõ, ý tôi là khi chuỗi tìm kiếm là ** bất kỳ ** nào. – kendaleiv