摘要: 有一个大项目, 其中10个负责数据访问的service即将被淘汰, 将会替换成entity framework的方式. 这10个service一共有近130个operation. 项目中所有调用这些operation的地方都必须被替换成新的EF方式. 整个项目有47902个cs文件. 现在要做个分析, 找到所有需要修改的地方. 阅读全文
posted @ 2013-08-20 19:09 Ivan Zou 阅读(1851) 评论(1) 推荐(2)
摘要: 1. 问题假设有代码如下:[ServiceContract]public interface IA{ [OperationContract] string M1();}[ServiceContract]public interface IB : IA{ [OperationContract] string M2();}public class A : IA{ public string M1() { return "this is M1"; }}public class B : A, IB{ public string M2() ... 阅读全文
posted @ 2013-08-20 11:11 Ivan Zou 阅读(1077) 评论(0) 推荐(0)
摘要: 6. 搜索多个索引 为了提升性能, 我们可以从多个索引同时进行搜索, Webus.Search.MultiSearcher提供了相关功能: public MultiSearcher(ISearcher[] searchers) {...} 我们将多个ISearcher对象传入MultiSearcher, 就可以像操作一个ISearcher对象那样进行搜索了. 阅读全文
posted @ 2013-07-30 17:31 Ivan Zou 阅读(595) 评论(0) 推荐(0)
摘要: 使用OUTLOOK, 你有没有遇到过上图的问题? 多达18419封邮件! 太多了, 每次想找一个邮件都非常耗时, 想办法解决这个问题成了一件非常紧迫的事情. 利用MS Search当然可以, 但是它太heavy了, 而且不支持如逻辑搜索表达式等复杂查找功能, 怎么办? 幸运的是我有WEBUS2.0 SDK, 于是我决定自己开发一个名为Outlook Searcher (Outlook搜索精灵) 的小工具. 阅读全文
posted @ 2013-07-29 18:44 Ivan Zou 阅读(3065) 评论(10) 推荐(5)
摘要: 3. 评分机制 (Webus.Search.IHitScorer) IndexSearcher在完成搜索之后会利用Webus.Search.IHitScorer来对结果进行评分. namespace Webus.Search { public interface IHitsScorer { void Score(Hits hits, Query query); } } 在进行评分时, 我们主要参考结果集hits, 同时也要参考用于搜索的query对象, 从而可以根据用户的原始查询需求来设定每个结果的权重. 阅读全文
posted @ 2013-07-25 12:31 Ivan Zou 阅读(805) 评论(0) 推荐(0)
摘要: 其实我来到园子已经6年多了, 看着我的好友zhuweisky已经成长成一个技术大牛, 而我还是小小的园丁一枚, 幡然间醒悟, 才骤然发现自己失去的美好 - 纪念那些值得怀念的开发岁月~...看着红色框框我无语, 5年啊, 这货哪儿去了? 太懒了....这5年, WEBUS2.0 SDK由2.0.2.7 升级到了2.2.3.9, 共计 212 次功能更新...这5年, 我和伙伴开发了WSS服务管理框架, 实现了商业应用...这5年, 我创造了所见即所抓Web数据采集技术, 研发了新一代智能蜘蛛程序...这5年, 我换了家公司, 做了一个超大的项目, 目前还在继续进行中...这5年, 我楞是没有为 阅读全文
posted @ 2013-07-24 00:28 Ivan Zou 阅读(538) 评论(1) 推荐(0)
摘要: 2. 使用Query Query是所有查询的基类, 它一共有如下7种实现, 这些实现都在Webus.Search.Queries命名空间下面: 类型 描述 范例 TermQuery 字段关键词查询, 提供字段名和关键词即可进行查询. //查找所有名字为"张三"的记录 new TermQuery("Name", "张三"); 阅读全文
posted @ 2013-07-23 23:53 Ivan Zou 阅读(1095) 评论(0) 推荐(0)
摘要: 1. IQueriable中内置的搜索功能 在Webus.Index.IQueriable中内置了一些基本的搜索功能: public interface IQueriable { Document SelectDoc(); //获取第一个Document对象, 作为样本 List SelectDoc(int[] docIds); //根据docId获取Document List SelectIndex(string fieldname, string keyword, int length); //在指定字段中根据关键词搜索, 只返回指定长度的数据 List SelectPostfixKeyword(string postfix); //搜索满足后缀条件的关键词 List SelectPrefixKeyword(string prefix); //搜索满足前缀条件的关键词 阅读全文
posted @ 2013-07-22 14:22 Ivan Zou 阅读(1112) 评论(0) 推荐(0)
摘要: 最近由于工作的需要, 要分析大量C#代码, 在数万个cs文件中搜索特定关键词. 这是一项非常耗时的工作, 用Notepad++要运行接近半个小时. 于是我利用WEBUS2.0 SDK创建了一个代码搜索器程序, 非常方便的完成了这项工作. 阅读全文
posted @ 2013-07-18 21:56 Ivan Zou 阅读(2154) 评论(11) 推荐(2)
摘要: 3. 添加、删除、撤销删除和修改文档 在WEBUS中要将文档添加到索引中,有且仅有一种方法: //Create a document Document doc = new Document(); doc.Fields.Add(new Field("Title", title, FieldAttributes.Index)); doc.Fields.Add(new Field("Html", html, FieldAttributes.Index | FieldAttributes.Analyse)); doc.Fields.Add(new Field("Url", url, FieldAttributes.Sort)); //Add doc to index IIndexable writer = new IndexManager(); writer.Add(doc); 如果要删除一个文档,可以通过以下两种方式: 阅读全文
posted @ 2013-07-17 10:35 Ivan Zou 阅读(514) 评论(0) 推荐(0)