- 博客(96)
- 资源 (10)
- 收藏
- 关注
原创 Hubble.net 简介及与Lucene.net 对比测试
Hubble.net经过整整1年的开发,终于可以正式使用了。昨天我发布了第二个测试版本0.7.1.0,这个版本比第一个测试版本性能上有了一定提高。Hubble.net目前还只是提供了一些最基本的功能,很多高级的功能,比如分组统计,消重,多表关联查询等将陆续在后续版本中开发。 系统简介Hubble.net是一个基于.net framework 的开源免费的全文搜索数据库
2009-12-15 12:07:00 5806 2
原创 Hubble.net 安装指南
Hubble.net Team 运行安装包 Hubble.net 项目首页 http://hubbledotnet.codeplex.com/ 0.7.0.0 版本 下载地址 http://hubbledotnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId
2009-12-15 12:01:00 4892 3
原创 ASP.NET Response.Redirect 丢失 Session的问题
最近做了一个项目发现 Response.Redirect 后 Session 会丢失,搞了两天终于发现问题所在。问题代码 Session["xxx"] = xxx;Response.Redirect("yyy.aspx"); 当页面跳转到 yyy.aspx , Session 丢失,访问 Session[“xxx”] 得到 null.原因:当asp.net 执行
2009-12-15 12:00:00 4085 1
原创 .Net 下通过缓存提高TCP传输速度
.Net 提供了一个NetworkStream 用于TCP 的读写,实际使用时发现直接操作效率很低,哪怕把TCP 的发送缓存和接受缓存设置很大也没有太大提高。后来在对 NetworkStream 读写前设置了缓存,性能一下子提高了很多。 从实际测试结果看设置自己的写缓存,对性能的提升最为显著。我分析了一下,其原因很可能是在向NetworkStream序列化对象时,序列化程序调用
2009-12-15 11:57:00 2798
原创 SqlDataReader 提前终止的性能问题
作者:eagletSqlDataReader 对象可以逐行读取数据信息,但如果有10000行数据而我们只希望读取前面的100行数据,读取完后调用SqlDataReader.Close 会非常慢。实际上调用SqlDataReader.Close 时SqlDataReader会把后面的9900行数据全部读完才结束。这个问题的解决办法是在SqlDataReader.Close 前调用 S
2009-12-15 11:55:00 2669
原创 DataTable.NewRow 内存无法释放问题
作者:eaglet 昨天做了一个自动生成Insert 语句的小工具,今天测试发现存在严重的内存无法释放问题,代码看了好几遍,没发现问题。后来用 .Net Memory Profiler 跟踪(跟踪方法见 用 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇) 发现有数千个DataRow 没有释放,最后定位是DataTable.NewRow 的问题。
2009-12-15 11:54:00 3824 1
原创 自动生成Insert 语句的小工具
做了一个小工具,可以将 SQLSERVER 中的表、视图或者查询语句导出为Insert 语句。 如上图所示,你只要输入查询字符串,查询的SQL 语句 比如 select * from news生成Insert 语句中的表名已经生成行数,点击 Build 就可以生成一个批量Insert 语句的文件。 源码和可执行程序下载地址 代码Databas
2009-12-15 11:52:00 4556
原创 Hubble.net 建表语句 Create Table
语法[Directory(directory)][IndexOnly] –Optional[ForceCollectCount(count)] -Optional[DBTableName(table name)] –Optional[DBAdapter(adapter name)][DBConnect(connection string)]CREATE TABLEt
2009-12-15 11:48:00 3489 2
原创 最长不完全匹配子串频率计算-eaglet 的解法
蛙蛙 上午发的一片 蛙蛙推荐:[算法练习]最长不完全匹配子串频率计算 , eaglet 看了以后,也写了一个算法,用蛙蛙给的两个参数测试,速度大概比蛙蛙的快800倍左右。如果字符串更长,速度差异会更明显。算法描述:找出一个长字符串里的某个特定的子串出现的频率,匹配的子串的上一个字符和下一个字符不需要紧紧相邻,只要满足下一个字符在当前字符的后面就行。算法要求:长字符串的宽度最
2009-12-15 11:41:00 2674
原创 背包分组问题的解法
背包分组问题的解法作者:eaglet 今天在博问中看到这样一个问题 按记录总值比例分组记录 ,这个问题本质上是一个背包分组的问题。eaglet 花了2小时时间写了一个C#的实现,时间仓促,感觉还有很多值得改进的地方,不管怎么样,功能是实现了,贴出来给大家讨论吧。 我先把原题的意思按照我的理解再描述一遍: 有数组A 假设为 int[] goods =
2009-08-29 12:11:00 2671
原创 计算任意数值的阶乘
计算任意数值的阶乘作者:eaglet 谈到计算阶乘,大家可能会觉得比较简单,不就是一个循环从1一直乘到n吗?是的,确实是这样,但由于计算机的计算精度问题,利用计算机提供的现成的整数类型,我们最多可以计算到22! = 17196083355034583040 再大了,64位整形就无法存储。那么如果我们想计算100!怎么办呢?eaglet 以前在博问中回答过类似问题,今
2009-08-29 12:10:00 3135
原创 Linq to SQL 插入数据时的一个问题
Linq to SQL 插入数据时的一个问题今天用LinqtoSql插入数据,总是插入错误,说某个主键字段不能为空,我检查了半天感觉主键字段没有赋空值啊,实在是郁闷。要插入数据的表结构是Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.co
2009-08-29 12:10:00 2896 1
原创 盘古分词-中文人名识别
盘古分词-中文人名识别作者: eaglet eaglet 曾经在KTDictSeg 中分别尝试使用规则和统计方式来识别中文(汉族)人名,但效果都不理想。在盘古分词中eaglet另辟它径,采用一种新的算法来识别中文人名,效果相比规则和统计方式要好很多。下面eaglet就来介绍这种中文人名的识别方法。 要很好的识别中文人名,我们需要对要分解的句子按预处理和消除歧义
2009-08-29 12:09:00 5126 1
原创 盘古分词--功能简介
盘古分词--功能简介作者:eaglet 两年前我开发了一个KTDictSeg中文分词组件,这个组件推出2年来受到很多朋友的喜爱。不过由于我当初开发KTDictSeg时比较仓促,底子没有打好,而且当时对分词的理解也比较肤浅,所以KTDictSeg组件存在很多问题,我一直想重新开放一个更好的开源分词组件,但一直没有抽出时间。上周我终于下定决心开始做这个事情,经过两
2009-08-29 12:08:00 7845 7
原创 Hubble.net 值得纪念的一天
今天(2009-7-30)是Hubble.net 值得纪念的一天,从开始规划Hubble.net到今天已经8个多月,从0.1到0.2再到0.3再到0.4,每个版本都是一个故事,这期间不知道到解决了多少难题也不知道度过了多少个不眠之夜。多少次我一个人走在林荫道上考虑着一个又一个算法,多少次我看不到希望想放弃,但最后还是咬牙坚持。没有人和我讨论和交流,我就这样一个人寂寞的走着走着,看不到
2009-08-29 12:06:00 3220 5
原创 一个简单的SQL 行列转换
一个简单的SQL 行列转换Author: eaglet 在数据库开发中经常会遇到行列转换的问题,比如下面的问题,部门,员工和员工类型三张表,我们要统计类似这样的列表 部门编号 部门名称 合计 正式员工 临时员工 辞退员工 1 A 30 20 10 1 这种问题咋
2009-08-29 12:05:00 2879
原创 Hubble.net V0.3 版本正式生成
Hubble.net V0.3 版本正式生成author: eagletHubble.net 0.3 版本实现了如下功能:1. 记录的修改可以单个或批量修改记录。记录修改分为两种情况,如果只修改元数据不修改全文数据,则直接更新索引,并修改数据库中相应记录的元数据。如果修改全文数据,则删除原来记录并重新添加一条新的记录(这种情况下更新数据和Lucene的方法是一样的)2
2009-08-29 12:04:00 2637
原创 WinForm 下实现一个自动关闭的MessageBox
WinForm 下实现一个自动关闭的MessageBoxAuthor: eaglet WinForm 下我们可以调用MessageBox.Show来显示一个消息对话框,提示用户确认等操作。在有些应用中我们需要通过程序来自动关闭这个消息对话框而不是由用户点击确认按钮来关闭。然而.Netframework 没有为我们提供自动关闭MessageBox 的方法,
2009-08-29 12:04:00 3022
原创 如何将字符串动态转换为指定的值类型
如何将字符串动态转换为指定的值类型作者:eaglet转载请保留原作者署名并注明出处。 我们日常工作中经常会遇到将字符串转换为值类型的问题,比如"123"转换为一个Int32类型,这个很简单,我们只要调用int.Parse 函数就可以实现。eaglet今天要说的是,一些应用中往往在编码阶段无法知道字符串需要转换成的值类型的具体类型,而需要在运行时动态指定类型进行转换,
2009-08-29 12:02:00 2733
原创 有道难题第一题 在徐少侠的算法基础上改进
徐少侠的算法 见 有道难题第一题非OO解,极端记录160ms这个算法的效率已经很高了,徐少侠后来又写了一个一次循环的,但效率没有提高。我的思路也是把两次循环改为一次循环,效率上提高了20%左右。其实这个性能优化就是扣细节了,算法上没有什么改进 对两处进行改进1. 一开始就对A和B 加 384,这样就不需要每次计算都减384了,减少了不少减法运算2. 一次循环
2009-08-29 12:01:00 2733
原创 有道难题之OO
有道难题之OO 有人提出要用OO的思路来解决算法问题,OK,没问题,eaglet 今天就尝试用OO来实现算法。既然谈OO,我们就重点讨论设计,不重点讨论算法的效率了。 在开始OO之前,我想先说说什么是OO设计。OO设计就是面向对象设计,有人说不要认为你用了C#就OO了,不错用C#照样可以写出面向过程的代码。不过eaglet 还有补充一下,不要认为你用了class就
2009-08-29 11:59:00 544
原创 IL 到底算不算汇编语言?
IL 到底算不算汇编语言? 这两天老赵和老包为IL 是不是汇编语言交了火,eaglet 忍不住也想说两句。 首先我们不要拿中文在这里挣,这些词汇其实是从英文翻译过来的,在中文中算外来词。就像.net 中 Property 和 Attribute都翻译成属性,如果两个人都在讨论属性,但一个说的是Property 一个说的是 Attribute,结果是风马牛不相及,个说
2009-08-29 11:58:00 929
原创 有道难题之eaglet的算法
有道难题之eaglet的算法 刚才在园子里看到 周利华关于 "有道难题"的两道题的算法,eaglet 做了一下,第一题比周利华的算法快10倍左右,第二天快100倍左右。由于eaglet不符合参赛条件,所以就在博客园和大家交流交流吧。原帖链接 第一道算法题(250分) 话说你在走路上班时,经过一片种植萝卜的农田。这块田地的形状是一个矩形的网格
2009-08-29 11:56:00 679 1
原创 Hubble.net V0.2 版本正式生成
Hubble.net V0.2 版本正式生成 Author: eaglet Hubble.net V0.2 版本历时将近半年时间,终于全部结束,期间走了一些弯路,耽误了一些时间。 V0.2 版本是Hubble.net 的一个重要基石,该版本完成了一下功能和改进 1.文件索引 完成了将倒排索引持久化到文件的功能。 2.元数据索引 可以对
2009-08-29 11:47:00 543
原创 对 String 的几个错误认识
对 String 的几个错误认识 昨天调试一段程序发现内存始终释放不掉,最后终于发现是对String的错误使用造成,这促使我今天又仔细研究了一下String类型,不研究不知道,一研究发现我过去对String的很多认识都是错误的,感觉这种错误认识还比较有典型性,于是写下此文和大家一起探讨。 1. String 类型变量追加,或修改后的新String对象是驻留(Inte
2009-05-25 09:35:00 935
原创 采用部分快速排序算法实现数组的部分排序
采用部分快速排序算法实现数组的部分排序 Author: Eaglet 快速排序算法,网上相关文章已经介绍的很多了,数据结构教材中也有很详细的介绍。本文需要阐述的不是全排序快速排序算法,而是部分快速排序算法。所谓部分快速排序算法是指通过排序获取一个数列中最大的若干条有序记录。比如我们需要从一个有1百万记录的数组中获取前100条有序记录,并按从大到小顺序显示给用户,这种应用
2009-05-25 09:34:00 1467
原创 Hubble.net 持久化方面3个重大改进
Hubble.net 持久化方面3个重大改进 Author:Eaglet 1.持久的DocId Hubble.net 采用的持久的 DocId,即DocId 永远不会改变,而 lucene.net 的 DocId是动态的。这导致Lucene无法用DocId 做主键和别的数据进行整合 所以Lucene的全文内容和全文索引必须要建在一起,不能单独只建索引,而通过DocI
2009-05-25 09:33:00 877 1
原创 T-SFQL 0.1
T-SFQL 0.1 <spanstyle=font-size:18.0pt><spanstyle=mso-spacerun:yes> TOC /o "1-3" /h /z /u Copyright <spanstyle=color:windowtext;display:none;mso-hide:screen;text-decoration:n
2009-05-25 09:32:00 1778
原创 并行排序算法
并行排序算法 Author:Eaglet 今天早晨看到 蛙蛙池塘 的这篇博客 谁能把这个程序的性能提升一倍?---并行排序算法 。促使我写了一个并行排序算法,这个排序算法充分利用多核CPU进行并行计算,从而提高排序的效率。 先简单说一下蛙蛙池塘给的A,B,C 三种算法(见上面引用的那篇博客),A算法将耗时的平方和开平方计算放到比较函数中,导致Array.
2009-05-25 09:30:00 2032
原创 .Net 下调试跟踪线程挂起和程序死循环
.Net 下调试跟踪线程挂起和程序死循环作者:Eaglet .Net 下的程序调试相对C/C++要简单很多,少了那些令人头疼的指针越界的问题。不过当你的程序遇到如下问题时,依然非常棘手: 1. 进程异常终止。解决方案见 .Net 下未捕获异常的处理 2. 内存泄漏或者内存申请后程序始终没有释放。解决方案见 用 .NET Memory Profiler 跟
2009-05-25 09:29:00 1797
原创 对老赵写的简单性能计数器的修改续- 关于 GetThreadTimes
关于 GetThreadTimes 我在一篇博文中 《对老赵写的简单性能计数器的修改》 提到用 GetThreadTimes 这个Win32 API 来获取线程实际运行时间。今天我又深入研究了一下,发现这个API 返回的时间并不准确。 首先我们先看一下 GetThreadTimes 的实现原理: 在 kernel32.dll 内部 GetThreadTimes
2009-05-25 09:27:00 2338
原创 对老赵写的简单性能计数器的修改
对老赵写的简单性能计数器的修改 早上看到老赵写的这个性能计数器,感觉很实用,不过老赵用了很多.C# 3.0 的新语法,还用了 VISTA 和 Server2008 下特有的Win32 API,对于还在用C#2.0 或者还工作在 XP 或者 Server 2003下的兄弟们,只能望代码心叹了。应老赵的要求,我修改了他的代码,增加了对低版本C# 和 低版本windows 操作系统的支
2009-05-25 09:26:00 948
原创 .Net 下未捕获异常的处理
.Net 下未捕获异常的处理 作者:Eaglet 随着.Net技术的发展,.Net技术被逐渐应用到很多大型的应用软件项目中。这些项目的规模越来越大,很多项目中除了自己的代码外还引用了很多第三方的.net组件。同时很多项目又被应用到很多关键的部门,软件系统的稳定性越来越至关重要。由于.Net框架提供了非常强大的异常处理机制,同时对一些非托管代码很难控制的系统问题比如指针越
2009-05-25 09:25:00 1136
转载 大规模超文本web搜索引擎剖析-转载
原文地址翻译原文链接地址 The Anatomy of a Large-Scale Hypertextual Web Search EngineSergey Brin and Lawrence Page {sergey, page}@cs.stanford.edu Computer Science Department, Stanford Universi
2009-05-25 09:23:00 5842
原创 事件委托使用时内存泄漏的问题
事件委托使用时内存泄漏的问题 用C#编写事件或委托时如果处理不好会造成内存泄漏,看下面代码: Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> public class DoA2Ev
2009-05-25 09:20:00 1532
原创 自然语言分析、文本分析、全文索引,搜索引擎相关资源汇总
自然语言分析、文本分析、全文索引,搜索引擎相关资源汇总 日常工作中经常要查找这方面的相关文章,做个索引,并不断更新,以便日后查找。 LingPipe 自然语言处理工具包的博客 Google (谷歌)中国的博客网志 博客园搜索引擎团队博客 Blogs about: Text Analysis Lucene 源码剖析
2009-05-25 09:19:00 845
原创 C# WinForm下一步一步实现文件的拖入和拖出
C# WinForm下一步一步实现文件的拖入和拖出 作者:Eaglet 在WinForm实现一个类似资源浏览器的功能,需要实现将WinForm中列出的文件拖出到其他应用程序中或者从其他应用程序中将文件拖入到Winform应用中。网上有一些文章介绍这种功能,但都比较零散,缺少一个完整的例子。为此我编写了一个较完整的实现文件拖入和拖出的例子,并撰写此文一步步讲解如果实现类似
2009-05-25 09:18:00 924
转载 不限位数的十进制正整数类,可进行加和乘操作
using System;using System.Collections.Generic;using System.Text;namespace TestFactorial{ /**//// /// 10机制正整数类 ///
2009-05-25 09:15:00 511
原创 Hubble.Net 0.1 版本算法简介
Hubble.Net 0.1 版本算法简介Eaglet 经过3周的开发,Hubble.Net 0.1版本已经完成。这个版本不是一个可以商业应用的版本,准确的说其只完成了一些最核心的算法。发布这个版本的目的是为那些对搜索算法感兴趣的朋友们提供一个最单纯的版本,方便这些朋友们进行研究和测试。目前这个版本的运行效率和准确度已经比较高,不过我还是希望高手们能够提出更好的算法
2009-03-12 18:22:00 2079
转载 不选择使用Lucene的6大原因(转载) - Hubble.net 将尽可能解决这些问题
原文: 不选择使用Lucene的6大原因 Lucene是开放源代码的全文搜索引擎工具包,凭借着其强劲的搜索功能和简单易用的实现,在国内已经很普及,甚至一度出现了言搜索必称Lucene的盛景。上个月Lucene的开发团队发布了 Java Lucene 2.3.1,相信很多朋友们都用上了。在国内对Lucene的介绍可以分为3块儿: 第一类是:以车东 的Lucene
2009-03-12 18:18:00 2250 1
KTDictSeg 1.4 Beta 漏发布的SingleWords.txt文件
2008-10-20
C#代码动态编译、动态执行、动态调试
2008-10-17
KTDictSeg 1.4.01_Beta版本
2008-10-09
支持三态的TreeView控件(C# 编写)
2008-09-26
KTDictSeg V1.3 版本
2008-07-01
ktdictseg_v1.2.02
2007-08-12
安全证书登录组件SecUser
2007-08-12
WebCommV1.0.1
2007-07-09
KTDictSeg 中英文分词组件 V1.0.01版本
2007-05-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人