내 ASP.NET MVC (C#, Linq-to-Sql) 웹 사이트에서 완전한 검색 기능을 구현하려고합니다.검색 데이터베이스 - ASP.NET MVC C#
사이트는 검색하려는 약 1-2 개의 열이있는 약 3-4 개의 표로 구성됩니다.
이것은 내가 지금까지 무엇을 가지고 : 당신이 볼 수 있듯이
public List<SearchResult> Search(string Keywords)
{
string[] split = Keywords.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
List<SearchResult> ret = new List<SearchResult>();
foreach (string s in split)
{
IEnumerable<BlogPost> results = db.BlogPosts.Where(x => x.Text.Contains(s) || x.Title.Contains(s));
foreach (BlogPost p in results)
{
if (ret.Exists(x => x.PostID == p.PostID))
continue;
ret.Add(new SearchResult
{
PostTitle= p.Title,
BlogPostID = p.BlogPostID,
Text=p.Text
});
}
}
return ret;
}
, 나는 키워드와 테이블을 통해 실행 내부 foreach는 대한 foreach 문이 (나는 각 테이블에 대해 그것을 반복 것이다).
이것은 비효율적 인 것 같아서 데이터베이스 검색 방법을 만드는 더 좋은 방법인지 알고 싶었습니다.
더 빨리 검색 할 수 있도록 데이터베이스의 열을 어떻게 할 수 있습니까? 인덱싱에 대해 읽은 내용은 SQL Management Studio에서 볼 수있는 "전체 텍스트 인덱싱"True/False 필드입니까?