gpt4 book ai didi

c# - Linq 按匹配数排序

转载 作者:行者123 更新时间:2023-12-03 21:36:52 24 4
gpt4 key购买 nike

我有一个字符串数组和一个 Linq 查询:

/// <summary>
/// Return all the search results
/// </summary>
public static GenericTagEntity[] getSearchResults(int SectionID, string[] Words)
{
GenericTagEntity[] Recs;

using (MainContext db = new MainContext())
{
var q = (
from c in db.tblArticles
join a in db.tblForumAuthors on c.AuthorID equals a.Author_ID
join u in db.tblProfiles on c.AuthorID equals u.UserID
where c.IsDeleted == false
&& c.SectionID == SectionID
select new
{
c.Title,
c.ID,
c.Anchor,
c.Date,
c.Description,
u.EmailAddress,
u.UserID,
a.Username,
c.Body,
comments = (from f in db.tblComments where f.IsDeleted == false && f.Anchor == c.Anchor select new { f.ID }).Count()
});

我想做的是修改 where 以便它返回 c.Title OR c.Body 包含一个或更多的话。然后我需要按总匹配数排序(最相关的首先)!

这对我来说真的很难,非常感谢任何帮助。

我发现了这个,但它只是部分有帮助,而且 SO 搜索也没有产生很多结果。 http://msdn.microsoft.com/en-us/library/bb546166.aspx#Y200

最佳答案

很抱歉打扰您,但您使用了错误的工具来解决此问题。在 db 中创建全文索引并通过自定义函数从 LINQ 调用全文搜索,或者使用第 3 方全文搜索系统 Lucene。

如果你真的想用sql来做,那就算不。文档中单词实例的数量将要求您更改数据库架构。

您需要一个单词表(id、word)和一个出现表(wordid、articleid),然后您可以对出现表进行查询以获得您想要的结果。

关于c# - Linq 按匹配数排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7368702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com