【发布时间】:2009-12-02 04:50:54
【问题描述】:
我一直在谷歌搜索,但没有找到任何关于在 ASP.NET MVC 项目中构建良好搜索功能的好信息。
在我的脑海中,用于搜索作者和书籍的搜索功能如下所示:
char[] delimiterChars = { ' ', ','};
string[] searchterms = SearchBox.Split(delimiterChars);
IQueryable<SearchResult> SR = _db.Books.Where(e =>
(e.Title.Contains(SearchTerm[0]) || e.Author.Name.Contains(SearchTerm[0]))
&& (e.Title.Contains(SearchTerm[1]) || e.Author.Name.Contains(SearchTerm[1]))
//&& repeat for as many words were entered in the search box
)
.Select(e => new SearchResult
{
Title = e.Title,
Type = "Book",
Link = "Book/" + e.BookID
});
问题
- 有更好的方法吗?
- 如果不是,我如何动态构造我的 SQL 查询来查找与输入一样多的搜索词?
- 我可以将第二次搜索的搜索结果附加到
SR变量吗?
其他注意事项
在上面的搜索中,我正在搜索与图书或作者匹配的结果。也许在我想在 Author 表中查找匹配项之后立即进行搜索,然后将这些结果附加到第一个查询的 SR 变量结果中。我不知道这是否是最实用的方法,但可以做到吗?
【问题讨论】:
-
您可以使用 LIKE 关键字返回相似的结果吗?我不知道这是否可行,只是一个建议。
标签: c# .net asp.net-mvc search