gpt4 book ai didi

linq-to-sql - LinqToSql 和全文搜索 - 可以完成吗?

转载 作者:行者123 更新时间:2023-12-04 03:08:40 25 4
gpt4 key购买 nike

有没有人想出一种使用标准 LinqToSql 查询语法对任意数量的任意关键字执行全文搜索( FREETEXT() CONTAINS() )的好方法?

我显然想避免必须使用存储过程或必须生成动态 SQL 调用。

显然,我可以将搜索字符串作为参数输入到使用 FREETEXT() 或 CONTAINS() 的 SPROC,但我希望在搜索和构建查询方面更具创意:

“意大利辣香肠披萨”和汉堡,而不是“苹果派”。

我知道很疯狂 - 但是能够直接从 LinqToSql 执行此操作不是很好吗?任何有关如何实现这一目标的提示将不胜感激。

更新:我想我可能正在做一些事情 here ...

另外:我回滚了对我的问题标题所做的更改,因为它实际上改变了我所问内容的含义。我知道 LinqToSql 不支持全文搜索 - 如果我想知道,我会问这个问题。相反 - 我更新了我的标题以安抚编辑快乐触发手指的群众。

最佳答案

我设法通过使用表值函数来封装全文搜索组件来解决这个问题,然后在我的 LINQ 表达式中引用它以保持延迟执行的好处:

string q = query.Query;
IQueryable<Story> stories = ActiveStories
.Join(tvf_SearchStories(q), o => o.StoryId, i => i.StoryId, (o,i) => o)
.Where (s => (query.CategoryIds.Contains(s.CategoryId)) &&
/* time frame filter */
(s.PostedOn >= (query.Start ?? SqlDateTime.MinValue.Value)) &&
(s.PostedOn <= (query.End ?? SqlDateTime.MaxValue.Value)));

这里'tvf_SearchStories'是内部使用全文搜索的表值函数

关于linq-to-sql - LinqToSql 和全文搜索 - 可以完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67706/

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