首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止搜索结果中的重复(ASP.NET Razor语法)

如何防止搜索结果中的重复(ASP.NET Razor语法)
EN

Stack Overflow用户
提问于 2014-12-30 07:52:11
回答 4查看 534关注 0票数 0

圣诞快乐,新年快乐。

我正在创建一个基于关键字的搜索算法,有时基于短语。我想根据搜索栏中每个短语的每个单词输出结果.

下面是我的代码,很好.

代码语言:javascript
复制
var searchWords = Request["searchTerm"].Split(' ');
IEnumerable<dynamic> stories = Enumerable.Empty<string>();

var sqlSelect = "SELECT TOP 10 Feeds.* FROM Feeds WHERE Feeds.AdminPublish=@1 AND Title LIKE @0 ORDER BY UploadDate DESC";

foreach(var word in searchWords)
{
stories = stories.Concat(db.Query(sqlSelect, "%" + word + "%",).ToList());
}

In my (结果页)

代码语言:javascript
复制
@foreach (var d in stories){

//Show Title and description
@d.Title
@d.Username

}

问题

让我们说,我在搜索“烦人的圣诞”,在搜索完db之后,它将短语分成三个,并根据发现的三个单词的相似性/相似性返回结果。我得到的结果是

烦人的圣诞歌曲的社会学

欢迎来到未来

的社会学烦人的圣诞歌曲

欢迎来到未来

讨厌的圣诞歌曲的社会学

欢迎来到未来

如何使我的结果不显示具有类似ID的结果,或者如何删除多余的重复项

谢谢。

EN

回答 4

Stack Overflow用户

发布于 2014-12-30 07:53:53

Yo可以使用Distinct关键字从表中选择Distinct

代码语言:javascript
复制
var sqlSelect = @"SELECT distinct TOP 10 Feeds.* 
 FROM Feeds WHERE Feeds.AdminPublish=@1 AND 
 Title LIKE @0 ORDER BY UploadDate DESC";

编辑:

那你就可以这样做

代码语言:javascript
复制
foreach(var word in searchWords)
{
stories = stories.Concat(db.Query(sqlSelect, "%" + word + "%",).ToList());
}

stories= stories.Distinct<dynamic>();
票数 1
EN

Stack Overflow用户

发布于 2014-12-30 08:05:53

此外,还可以在lambda表达式中使用不同的扩展方法在视图中实现相同的扩展(Razor)

代码语言:javascript
复制
 @foreach (var d in stories.Distinct()){

//Show Title and description
@d.Title
@d.Username

}

您还可以提供一个特定的属性,根据该属性可以将列表区分开来,例如:

代码语言:javascript
复制
stories.Distinct(x=>x.Title)
//Or
stories.Distinct(x=>x.UserName)
票数 0
EN

Stack Overflow用户

发布于 2014-12-30 08:09:18

我要说的是,首先不要向stories添加重复的值.

与此类似的是:

代码语言:javascript
复制
foreach(var word in searchWords)
{
    lst = db.Query(sqlSelect, "%" + word + "%",).ToList()
    foreach(var v in lst)
    {
        if (!stories.Contains(v))
            stories.Add(v)
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27701572

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档