首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >具有更多匹配的Linq SQL搜索标记

具有更多匹配的Linq SQL搜索标记
EN

Stack Overflow用户
提问于 2017-10-12 00:51:48
回答 1查看 81关注 0票数 0

我正在用C# MVC编写一个标签搜索,但是我只能得到所有有一个单词的结果。-输出只应在所有输入单词匹配的情况下进行,如果输入中有两个单词,则不包括输出,但其中只有一个匹配。

到目前为止我的代码是:

代码语言:javascript
运行
AI代码解释
复制
List<String> list = Request["tags"].Split(' ').ToList();
KDBEntities q = new KDBEntities();

var query = (from tag in q.KDB_tags join question in q.KDB_questions on tag.question_id equals question.id where list.Any(x => x.Equals(tag.tag)) select question);
var Rquery = query.GroupBy(x => x.id).Select(grp => grp.FirstOrDefault()).ToList();


return View(Rquery);

我已经想了很长一段时间了,但没有运气。

希望这是有意义的,你们中的任何人都可以帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-12 02:07:26

标签列表:

代码语言:javascript
运行
AI代码解释
复制
List<TagObj> tags = new List<TagObj>()
{
    new TagObj() { Id = 1, QuestionId = 1, Tag = "news" },
    new TagObj() { Id = 2, QuestionId = 1, Tag = "sports" },
    new TagObj() { Id = 3, QuestionId = 1, Tag = "famous" },
    new TagObj() { Id = 4, QuestionId = 2, Tag = "news" },
    new TagObj() { Id = 5, QuestionId = 2, Tag = "sports" },
    new TagObj() { Id = 6, QuestionId = 3, Tag = "news" },
    new TagObj() { Id = 7, QuestionId = 4, Tag = "funny" },
};

问题清单:

代码语言:javascript
运行
AI代码解释
复制
List<QuestionObj> questions = new List<QuestionObj>()
{
    new QuestionObj(){ QuestionId = 1, Question = "Whats up footballers?" },
    new QuestionObj(){ QuestionId = 2, Question = "These are famous news?" },
    new QuestionObj(){ QuestionId = 3, Question = "Read all about it?" },
    new QuestionObj(){ QuestionId = 4, Question = "You know whats funny?" }
};

这些是来自请求的传入标记:

代码语言:javascript
运行
AI代码解释
复制
var incomingTags = new List<string>() { "news", "sports" };

以下是以下问题:

代码语言:javascript
运行
AI代码解释
复制
    var query = from t in tags
                join q in questions on t.QuestionId equals q.QuestionId
                where incomingTags.Contains(t.Tag)
                select new { question = q, tag = t };

    var result = query.
        GroupBy(g => g.question.QuestionId).
        Where(g => g.ToList().Select(l => l.tag.Tag).SequenceEqual(incomingTags)).
        Select(s => s.First().question).ToList();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46705278

复制
相关文章
linq to sql初步
1在数据库中设计一个表 2设计一个相关的实体类 注意类名和字段的attribute 代码 using System; using System.Collections.Generic; using System.Linq; using System.Data.Linq; using System.Data.Linq.Mapping; using System.Text; using Life365.Common; namespace Life365.Entity { ///<SUMMARY></
liulun
2022/05/09
4510
linq to sql初步
非常帅气的Linq to sql
Linq是.NET 3里新增的东西,我在软件工程课程设计里初步应用到一点,而且主要用在Lambda表达式上,今天算是在好奇心驱动下尝试了一下在数据库方面的应用。
owent
2018/08/01
8310
Linq to SQL 查询Tips
LINQ to SQL当中的灵活的查询操作是其一个很大的优点, 但是当编写较复杂的链接时有时候需要注意一些细节。 1、LINQ to SQL 提供了 DataLoadOptions用于立即加载对象,避免往返访问数据库,提高查询性能。方法包括:      LoadWith 方法,用于立即加载与主目标相关的数据。      AssociateWith 方法,用于筛选为特定关系检索到的对象。        public List<Entity.RoleDataExtend> GetDataExtendByR
张善友
2018/01/19
1K0
sql转Linq的工具
这些天写Linq挺烦人的,就上网搜搜可有什么好的sql转Linq的工具,咦,马上就看上了Linqer。
跟着阿笨一起玩NET
2018/09/19
2.6K0
sql转Linq的工具
linq to sql 扩展方法
1、DataContext扩展方法 public static class DataContextExentions { /// <summary> /// 打开连接 /// </summary> /// <param name="dataContext"></param> private static void OpenConnection(this DataContext dataContext)
跟着阿笨一起玩NET
2018/09/19
7630
DAG的深度优先搜索标记
这是图论的基础知识点,也是学习Tarjan的导学课。 一、知识 对于在图G上进行深度优先搜索算法所产生的深度优先森林Gt,我们可以定义四种边的类型:
风骨散人Chiam
2020/10/28
5090
DAG的深度优先搜索标记
Linq to sql并发与事务
       为了看起来清晰,我已经事先把所有分类为1产品的价格和库存修改为相同值了。然后执行下面的程序:
跟着阿笨一起玩NET
2018/09/19
6880
SQL To LinQ 你知道么?
 学习linQ的时候,你应该用到过LinQ to SQL 的工具---LinQPad,刚开始用,不太熟悉,尤其是涉及到多表查询,不会写LinQ语句怎么办?
令仔很忙
2018/09/14
5860
SQL To LinQ 你知道么?
LINQ to SQL(1):基础入门
LINQ to SQL是在SQL SERVER数据库上设置一个强类型化界面的方式,LINQ to SQL提供的方式是目前我所见到查询SQL SERVER最简单也是最有效的方式,他可以使用自定义的类型与数据表甚至存储过程进行对应,而不像我们使用ADO.NET那样,把更多的功夫用在数据类型转换等等的问题上,当程序运行的时候,LINQ to SQL会将我们使用自己的语言定义的模型中的语言继承查询转换为SQL,然后将他在数据库上执行,然后将返回的结果转换为我们自定义的类对象,使用过nhibernate或者ibati
小白哥哥
2018/03/07
1.4K0
LINQ to SQL(1):基础入门
LINQ to SQL(4):OR设计器
在我们使用LINQ to SQL的时候,需要大量的使用OR设计器,虽然我们手工写代码也是完全可以实现的,但是OR设计器是非常强大的工具,我想有了它,没有几个人会去手工写代码,当然了,手动写代码也是必须的,这一篇我就写几个典型的需要手工写代码的情况 打开和关闭复数形式 默认情况下,OR设计器会将数据库对象从服务器资源管理器拖放到OR设计器上的时候,会自动将ies,s结尾修改为单数形式,这样可以更准确的表示实例化的实体类到单个数据记录的事实,但是某些时候,我们可能会不需要这种效果,这样倒是可能会把我们的代码弄混
小白哥哥
2018/03/07
9310
LINQ to SQL(4):OR设计器
搜索:文本的匹配算法
搜索即找到跟搜索词句很相似的文本,例如在百度中搜索"人的名",结果如下 那么怎么评价两个文本之间的相似度呢? 余弦相似度  (cosine similiarity) 本文介绍基于VSM (Vector
alexqdjay
2018/05/11
6.4K0
linq to sql生成not in语句的小技巧
以前一直觉得linq to sql生成类似where id not in (1,3,5)或where id not in (select id from ...)这样的条件不是很方便,每次我都是把条件ID事先取到一个数组里,然后用 !Arr.Contains(c.Id)这样处理,今天突然发现这样好傻,其实可以完全直接用linq写成一句,贴个示例在这里,以后备查 from a in TableA where !(from b in TableB Where ... select b.Id).Contains(
菩提树下的杨过
2018/01/24
8560
LINQ能不能用系列(二)LINQ to SQL 效率比对
前言 很多人听说过LINQ TO SQL与ADO.NET传统方式用于不同的环境,LINQ TO SQL与ADO.NET传统方式也没有可比性,就像公交车与私家车一样,虽然是车但用途完全不同,但很少有人去探究,究竟为什么他们不同,他们不同的原因是什么,这我觉得是一个好的程序和一个普通程序最主要的区别之一。下面一起来看LINQ TO SQL效率到底如果吧。 内容 测试环境:net framework 4.0 + Sql Server 2008 测试用途:100w条数据 like 查询,原因添加、修改、删除消耗
磊哥
2018/05/08
1.2K0
LINQ能不能用系列(二)LINQ to SQL 效率比对
LINQ to SQL 辅助工具
当你在项目中使用LINQ to SQL的时候, 有一个事情是必须要非常注意的, 那就是要关心一下LINQ to SQL帮你生成的SQL语句, 尤其在你还不是非常熟悉LINQ to SQL的语法, API的时候, 这点是非常重要的。 一、DataContext本身有提供Log属性来将LINQ to SQL生成的SQL语句格式化并输出到控制台窗口, 通常是这样: DataContextInstance.Log = Console.Out; 这个用法对于控制台, Winform应用程序没有问题, 但对于AS
张善友
2018/01/30
8840
LINQ to SQL(3):增删改查
上一节中,我已经写过了利用OR设计器生成对象模型的方式,其实生成这样对数据库进行映射的模型的方式不只这一种,不过VS为我们提供的这种设计器真的是很强大,在实际应用中也是经常用到的 这一节写利用LINQ to SQL对数据库进行的简单增删改查的操作的实现方式,这里注意是“简单”,复杂的查询呢,我将会在下一篇或者下下一篇中写到,那里会有很多的内容,比如处理并发啦,自定义LINQ表达式查询啦,等等的这些,而下一篇中我计划写一些关于扩展OR设计器生成的代码以及向实体类中添加验证的一些东西,因为毕竟我们使用OR设计器
小白哥哥
2018/03/07
7250
LINQ to SQL(3):增删改查
SQL 转 Linq 备忘录
写SQL的分组统计合作等基本没啥问题,随便出手都解决,但最近用MVC5 写了一个项目,其中的查询统计就不这么容易,因为用了EF进行数据连接处理,所有条件都用linq,当然更重要的是懒得加SQL的调用方法.而LING的统计说难也不难,说易也不易.本来写个12个月的累计合加,,简单地用SQL写了一下
谭广健
2019/01/21
7150
SQL 转 Linq 备忘录
linq to sql中的自动缓存(对象跟踪)
这篇东西应该至少一年前就写的,不过因为个人太懒,一直没记下来,今天补上. linq to sql中,对于同一个DataContext上下文环境,根据表主键选择记录时(当然这里所指的“记录”会自动转成“对象”),如果该记录已经被select过,默认情况下会被自动缓存下来,下次再选择时,将自动返回已缓存的对象,而不是重新从数据库里查询。 在很多情况下(特别是查询的场景),这会提高性能(因为避免了数据库重复查询),但是也时候也会带来麻烦: 比如我们取出一个对象后,对其属性做了修改,然后提交到数据库前,想比较一下原
菩提树下的杨过
2018/01/23
1.4K0
linq to sql中的自动缓存(对象跟踪)
《搜索和推荐中的深度匹配》——2.2 搜索和推荐中的匹配模型
当应用于搜索时,匹配学习可以描述如下。一组查询文档对D=(q1​,d1​,r1​),(q2​,d2​,r2​),...,(qN​,dN​,rN​)作为训练数据给出,其中 i 和 qi​,di​和ri​(i=1,...,N)分别表示查询,文档和查询文档匹配度(相关性)。每个元组 r)∈D的生成方式如下:查询q根据概率分布P(q)生成,文档d根据条件概率分布P(d∣q)生成,并且相关性r是根据条件概率分布 P(r∣q,d)生成的。这符合以下事实:将query独立提交给搜索系统,使用query words检索与query关联的文档,并且文档与query的相关性由query和文档的内容确定。带有人类标签的数据或点击数据可以用作训练数据。
小爷毛毛_卓寿杰
2021/09/10
1.5K0
mysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQLmysql 多表关联查询 实现 全文匹配的 模糊搜索接口 SQL
在mysql中,有时我们在做数据库查询时,需要得到某字段中包含某个值的记录,但是它也不是用like能解决的,使用like可能查到我们不想要的记录,它比like更精准,这时候mysql的FIND_IN_SET函数就派上用场了,下面来具体了解一下。
一个会写诗的程序员
2018/08/17
2.5K0
《搜索和推荐中的深度匹配》——经典匹配模型 2.1 匹配学习
已经提出了使用传统的机器学习技术进行搜索中的查询文档匹配和推荐中的用户项目匹配的方法。这些方法可以在一个更通用的框架内形式化,我们称之为“学习匹配”。除了搜索和推荐外,它还适用于其他应用,例如释义,问题解答和自然语言对话。本节首先给出学习匹配的正式定义。然后,它介绍了传统学习以匹配为搜索和推荐而开发的方法。最后,它提供了该方向的进一步阅读。
小爷毛毛_卓寿杰
2021/09/10
3.8K0

相似问题

Linq到Sql通过标记进行搜索

12

如何搜索具有匹配结束标记的xml标记?

10

LINQ搜索/匹配

24

Linq to SQL搜索

25

具有两个或更多字段的sql搜索

30
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档