或许你还你知道HubbleDotnet,下面简单对HubbleDotnet坐下介绍。

HubbleDotNet是由盘古分词作者——eaglet 开发的一个基于.net framework 的开源免费的全文搜索数据库组件。开源协议是 Apache 2.0。HubbleDotNet提供了基于SQL的全文检索接口,使用者只需会操作SQL,就可以很快学会使用HubbleDotNet进行全文检索。

HubbleDotNet可以实现全文索引和查询、多域检索和排序、分组统计、消重、分类、聚类、多表关联查询等等一系列全文检索和数据挖掘功能。 HubbleDotNet提供开放的数据库适配器接口,可以和各种数据库完美整合,为各种数据库系统附加全文检索和数据挖掘功能。

HubbleDotNet设计了较为完善的并发控制程序,数据的增删改查可以多线程同时并发进行,没有任何冲突。HubbleDotNet还进行了缓存和内存管理设计,可以帮助用户最大限度的提高查询的效率。HubbleDotNet力争在未来的几年内超过Lucene.net成为.net开发环境中最受欢迎的全文检索组件。

项目源代码地址:http://hubbledotnet.codeplex.com/

如果你想学习实用HubbleDotNet,请看作者的博客介绍:HubbleDotNet开源全文搜索数据库项目--技术详解

-------------------------------------------------------------------------邪恶的分割线------------------------------------------------------------------------------

下面讲述的是 scott (QQ昵称) 对HubbleDotNet的进一步开发的 LinqToHubble。(最近更新:2014年9月12日,更新修复2个bug)

  LinqToHubble 是一个简单实用的hubbledotnet的LINQ Provider,支持Match、Contains匹配,支持Take、Skip分页,支持OrderBY排序,支持多Where嵌套,简单优化表达式 放大了长词得分,数据也是延迟取的……
快速实用步骤:

1、首先下载dll文件,并添加引用。

1).下载地址1:http://files.cnblogs.com/moretry/linq2hubble.zip

2).下载地址2: http://download.csdn.net/detail/jinliang99/7910075

3).dll文件请全部添加引用,Hubble.net 的  dll为最新版本编译的。

4).请将dictionaries 盘古分词字典文件夹放到程序运行根目录,或者包含着在项目中(较新则复制),其实是编译器帮我们复制到程序运行根目录下的。

2、在程序的配置文件内添加hubbledotnet的section,配置文件如下:

<configuration>
<configSections>
<section name="hubbledotnet" requirePermission="false" type="ZY.Search.Pro.Core.ConfigInfo, ZY.Search.Pro" ></section>
</configSections>
<hubbledotnet>
<connectionString>server=your connectionstring;uid=hubble username;pwd=hubble password;database=hubble database</connectionString>
<fragmentSize></fragmentSize>
<cacheTimeout></cacheTimeout>
<commandTimeout></commandTimeout>
<highlighterFormatter>
<font color="red">,</font>
</highlighterFormatter>
</hubbledotnet>
</configuration>

注意事项:configSections 节点要在 configuration 的第一节点。  连接字符串自己替换下,没有用户名和密码的可以删除 uid=hubble username;pwd=hubble password;

3、构造自己的实体,根据自己的hubble数据表构造自己的model示例,需要添加system.data.linq.dll的引用。

using System.Data.Linq.Mapping;

[Table(Name = "Member")]//hubbledotnet服务器里的表名称
public class Member
{
[Column]//缺省为属性名
public string Id { get; set; }
[Column(Name = "Name^10")]//字段权重 10 默认1
public string Name { get; set; }
[Column(Name = "Description^5")]//字段权重 5 默认1
public string Description { get; set; }
}

4、根据具体业务编写自己的代码:

static void Main()
{
string keyWords = "关键词";
DatabaseDataContext dc = new DatabaseDataContext();
var result = dc.GetTable < Member > ().Where(x = > x.Name.Match(keyWords) || x.Description.Match(keyWords));
# region
//result = from item in result
// where item.Name.Contains(keywords, true) //也支持这种写法
// select item;
# endregion
//region 统计总数
//var count = result.Count();
foreach(var v in result.AsHighlight < Member > (keywords)) //高亮这样用AsHighlight,不高亮您随便
//foreach(var v in result)不高亮
{
Console.WriteLine(v.Name);
}
Console.ReadKey();
}

5、哦,不好意思,作者说没有第五步了。此文为转载,原作者的博客地址:http://www.itrefer.com/index.php/archives/15。。。。

是不是很简单啊,我也是初学者,我感觉很快就能上手了。

Hubble.net  1群: 128951966       Hubble.net  2群:161508409               欢迎学习Hubble.net的来一起交流学习。

 

LinqToHubble介绍及简单使用步骤——LinqToHubble是对HubbleDotnet的封装的更多相关文章

  1. WebRTC介绍及简单应用

    WebRTC介绍及简单应用 WebRTC,即Web Real-Time Communication,web实时通信技术.简单地说就是在web浏览器里面引入实时通信,包括音视频通话等. WebRTC实时 ...

  2. 【转载】salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)

    salesforce 零基础开发入门学习(三)sObject简单介绍以及简单DML操作(SOQL)   salesforce中对于数据库操作和JAVA等语言对于数据库操作是有一定区别的.salesfo ...

  3. 【转载】Ssh整合开发介绍和简单的登入案例实现

    Ssh整合开发介绍和简单的登入案例实现 Ssh整合开发介绍和简单的登入案例实现 一  介绍: Ssh是strtus2-2.3.1.2+ spring-2.5.6+hibernate-3.6.8整合的开 ...

  4. python模块介绍- HTMLParser 简单的HTML和XHTML解析器

    python模块介绍- HTMLParser 简单的HTML和XHTML解析器 2013-09-11 磁针石 #承接软件自动化实施与培训等gtalk:ouyangchongwu#gmail.comqq ...

  5. 5个简单的步骤把 WordPress 打造成 CMS

    可能网站的首页一直是一成不变的博客样子,有时候也会挺闷的,个人觉得首页就是应该把博客中最好最重要的内容展现给读者,基于这个想法,我们可以把博客的首页改成一个非常简单的 CMS 首页. 基于 WordP ...

  6. 基于.NET CORE微服务框架 -surging的介绍和简单示例 (开源)

    一.前言 至今为止编程开发已经11个年头,从 VB6.0,ASP时代到ASP.NET再到MVC, 从中见证了.NET技术发展,从无畏无知的懵懂少年,到现在的中年大叔,从中的酸甜苦辣也只有本人自知.随着 ...

  7. 1. pyhanlp介绍和简单应用

    1. pyhanlp介绍和简单应用 2. 观点提取和聚类代码详解 1. 前言 中文分词≠自然语言处理! 中文分词只是第一步:HanLP从中文分词开始,覆盖词性标注.命名实体识别.句法分析.文本分类等常 ...

  8. C#串口介绍以及简单串口通信程序设计实现

    C#串口介绍以及简单串口通信程序设计实现 周末,没事干,写个简单的串口通信工具,也算是本周末曾来过,废话不多,直接到主题 串口介绍 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口) ...

  9. 消息队列介绍、RabbitMQ&Redis的重点介绍与简单应用

    消息队列介绍.RabbitMQ&Redis的重点介绍与简单应用 消息队列介绍.RabbitMQ.Redis 一.什么是消息队列 这个概念我们百度Google能查到一大堆文章,所以我就通俗的讲下 ...

随机推荐

  1. 查询中mybatis的if判断里传入0

    1.传入的是long 或者 Integer类型 ,<if test="id != null "> 但是id传值为0时(前提是id对应的类型为long 或者 Intege ...

  2. VS文件发布不了,这样设置可以解决

    在VS里面新增一些文件的时候,往往发布的时候会发布不了,比如:(*.rdlc,*.p12).在项目里面,这些项目已经包含在项目里了,但是发布后,会发现这些文件并没有被发布出来 解决办法:邮件选择文件, ...

  3. 第八章 高级搜索树 (xa2)红黑树:结构

  4. Openvpn 日常问题解决

    一.Openven的在windows系统下的使用: 1.Openven客户端2.2.0:http://pan.baidu.com/s/1sjJij4T 安装好客户端软件后,将服务器下发的证书和配置文件 ...

  5. 一些unity问题的收集

    ---恢复内容开始--- 1.Mono打不开且鼠标点击标签页无反应的解决办法 http://answers.unity3d.com/questions/574157/monodevelop-not-o ...

  6. Spring框架整合JUnit单元测试

    1. 为了简化了JUnit的测试,使用Spring框架也可以整合测试 2. 具体步骤 * 要求:必须先有JUnit的环境(即已经导入了JUnit4的开发环境)!! * 步骤一:在程序中引入:sprin ...

  7. MVC加载部分视图Partial

    加载部分视图的方法:Partial() .RenderPartial() . Action() .RenderAction() . RenderPage() partial 与 RenderParti ...

  8. OpenGLES.Functions.Missing.in.OpenGLES1.x

    转载自: http://maniacdev.com/2009/05/big-list-of-opengl-functions-missing-in-iphone-opengl-es The funct ...

  9. geoserver 开发2

    先上源码下载 上一章我们介绍了GeoServer源码分析的必要性(这个就见仁见智了)以及诸项准备工作,并且在最后还给出了OWS请求处理流程的伪代码. 这一章我们来看看要注册自己的服务需要做哪些工作.假 ...

  10. Python GUI 编程

    Python GUI编程(Tkinter) Python 提供了多个图形开发界面的库,几个常用 Python GUI 库如下: Tkinter: Tkinter 模块(Tk 接口)是 Python 的 ...