データベースにアクセスするためにwebserviceとLinq To Sqlを使用してオートコンプリート検索を実行しようとしています。Linq to SQL検索複数の列と複数の単語
ここに私のコードです。これは検索条件のいずれかに一致する結果を返します。これを変更して各結果にすべての検索条件が含まれるようにしたいと思います。
私は、SQLのフルテキスト検索がおそらく最も洗練されたソリューションだと認識していますが、この機能がデータベースを変更せずに可能であるかどうかを確認したいと思います。
string[] searchTerms = searchString.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries).ToArray();
IQueryable<AccountResult> results = db.cdAccounts
.Select(x =>
new AccountResult()
{
idAccount = x.id_Account,
AccountName = x.AccountNme,
AccountNumber = x.AccountNum
}).Distinct().OrderBy(x => x.AccountName);
foreach (string searchTerm in searchTerms)
results = results.Where(x => x.AccountName.Contains(searchTerm) || x.AccountNumber.Contains(searchTerm));
return results.OrderBy(x => x.AccountName).Take(40).ToList();
結果は第2、第3などの用語に一致しません。それは少し醜いですが、その速さは十分です。まだ提案がありません。 – KClough