全文检索Linq

发布时间:2019-03-13 整理:脚本之家 作者:未知
脚本之家收集整理的这篇文章主要介绍了全文检索Linq脚本之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随脚本之家小编过来看看吧!
Linq没有内置的全文搜索,似乎没有很多关于这个问题的帖子,所以我玩了一个玩,并提出了这个方法为我的utlity类:
public static ienumerable<TSource> GenericFullTextSearch<TSource>(string text,MyDataContext context)
{
    //Find LINQ Table attribute
    object[] info = typeof(TSource).GetCustomAttributes(typeof(System.Data.Linq.Mapping.TableAttribute),true);
    //Get table name
    String table = (info[0] as System.Data.Linq.Mapping.TableAttribute).Name;
    //Full text search on that table
    return context.ExecuteQuery<TSource>(String.Concat("SELECT * FROM ",table," WHERE CONTAINS(*,{0})"),text);
}

并将这个包装器添加到每个部分Linq类,其中有一个全文索引

public static ienumerable<Pet> FullTextSearch(string text,MyDataContext context)
{
    return (LinqUtilities.GenericFullTextSearch<Pet>(text,context) as ienumerable<Pet>);
}

所以现在我可以用整齐的东西做全文搜索

var Pets = Pet.FullTextSearch(helloimatextbox.Text,MyDataContext).Skip(10).Take(10);

我假设目前只需要非常基本的搜索。任何人都可以改进吗?是否可以实现一个扩展方法并避免包装?

最简单的解决方案是在sql中使用内联表值函数,并将其添加到模型中

http://sqlblogcasts.com/blogs/simons/archive/2008/12/18/LINQ-to-SQL—Enabling-Fulltext-searching.aspx

总结

以上是脚本之家为你收集整理的全文检索Linq全部内容,希望文章能够帮你解决全文检索Linq所遇到的程序开发问题。

如果觉得脚本之家网站内容还不错,欢迎将脚本之家网站推荐给程序员好友。