12 2013 档案
摘要:近实时搜索就是他能打开一个IndexWriter快速搜索索引变更的内容,而不必关闭writer,或者向writer提交,这个功能是在2.9版本以后引入的,在以前没有这个功能时,必须调用writer的commit方法,然后重新打开reader,这个过程很耗费时间,因为writer的提交必须对索引里的所有新文件进行同步,同步操作耗费系统资源,近实时搜索使我们能够对新创建还未提交的索引进行搜索。 在4.5的版本上做一个简单的测试示例,参考lucene in action[java]view plaincopyprint?importjunit.framework.TestCase;importorg
阅读全文
摘要:var query1 = Query.EQ(q => q.sGuidBaseCompany, sGuidBaseCompany); var query2 = Query.Matches(m => m.sName, name); var query3 = Query.Matches(m => m.sName, name); var cursor = this.GetCollection().Find(Query.Or(Query.And(query1, query2), query3));
阅读全文
摘要:作为lucene的Query工具,QueryParser却是最重要的一个。简单的说,QueryParser能够根据用户的输入来进行解析,自动构建合适的Query对象。下面简单总结一下它的实现:目录用户输入QueryParser的初始化短语和QueryParserQueryParser的模糊匹配查询通配符与QueryParserQueryParser指定Field查询QueryParser的范围RangeQuery查询QueryParser的多域MultiFieldQueryParser查询1、用户输入(词条的定义)当用户输入要查询的关键字串后,QueryParser首先会对其进行解析,而这种解
阅读全文
摘要:分词器对英文的支持是非常好的。一般分词经过的流程:1)切分关键词2)去除停用词3)把英文单词转为小写但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好。国人林良益写的IK Analyzer应该是最好的Lucene中文分词器之一,而且随着Lucene的版本更新而不断更新,目前已更新到IK Analyzer 2012版本。IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。到现在,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词
阅读全文
摘要:在lucene使用过程中,如果要对同一IndexWriter中不同 Document,不同Field中使用不同的analyzer,我们该如何实现呢?通过对《lucene in action》的阅读,发现是可以解决这一问题的。lucene可以正对整个IndexWriter对象或者每一个document对象或者特定 Field使用不同的分析器。Java代码 复制代码 Analyzer analyzer = new StandardAnalyzer(); IndexWriter writer = new IndexWriter(direcotry, analyzer, true); // Docum
阅读全文
摘要:thrift --gen csharp search.thriftthrift --gen java search.thriftThrift是facebook的一个技术核心框架,07年四月开放源码,08年5月进入apache孵化器。 简言之,开发者可以通过写一个.thrift文件,定义相应的数据结构和服务接口,该thrift文件会由Thrift相应的解释器解释生成指定的类型(C++,java等等)代码,然后用户在客户端和服务器端,分别在生成的代码里编写相应的服务接口函数,并做相应配置选择,就可以实现跨平台的rpc调用。 这里给出一个使用的简单例子,之中牵扯到了一些编译方面的细节问题。 定义数据
阅读全文
摘要:最近在用lucene4.0,因为之前也没用过lucene其它版本,所以也不是很熟悉。但每次上网查资料代码的时候,总发现网友们贴的代码都是之前的版本的。当我拷贝过来的时候总会出问题,去查API的时候,总是显示 Deprecated,虽然能用但看到上面打了一个斜杠总是感觉不舒服的。现在我就列出我遇到的一些过时的方法吧!以前在增加索引的时候给document增加字段都是Field FieldPath = new Field("path", textFiles[i].getPath(),Field.Store.YES, Field.Index.NO);可以指定该字段是否存储,是否索
阅读全文
摘要:http://lucene.apache.org/core/4_0_0/core/org/apache/lucene/document/Field.html
阅读全文
摘要:【IT168专稿】在上一篇文章中,我们学习了Mongodb的安装和初步使用,在本文中,将学习如何使用Java去编程实现对Mongodb的操作。 HelloWorld程序 学习任何程序的第一步,都是编写HelloWorld程序,我们也不例外,看下如何通过Java编写一个HelloWorld的程序。 首先,要通过Java操作Mongodb,必须先下载Mongodb的Java驱动程序,可以在这里下载。 新建立一个Java工程,将下载的驱动程序放在库文件路径下,程序代码如下:packagecom.mkyong.core; importjava.net.UnknownHostException;...
阅读全文
摘要:我在百X知道上回答问题时经常遇到类似与这样的问题:MongoDB有没有像MySQL一样的ODBC驱动?MongoDB能不能像MySQL一样获取字段名称或类型。我的回答是:不行,因为MongoDB不是MySQL。这个回答显得MongoDB太弱了,我的原意是你不能要求一个物理优秀教师帮你辅导数学,也许他能做到基本的教学,但他很难做到优秀数学教师那么全面。今天讨论的问题是:批量插入和批量查询昨天在百X知道上有人问起MongoDB的批量插入如何写,这个我还真没用过,一方面MongoDB的速度足够快让我从来没有想过去找这种方法,另一方面MongoDB的官网以及API里也找不到这种方法。那就带来两个问题。
阅读全文
摘要:简介:Apache Thrift 是 Facebook 实现的一种高效的、支持多种编程语言的远程服务调用的框架。本文将从 Java 开发人员角度详细介绍 Apache Thrift 的架构、开发和部署,并且针对不同的传输协议和服务类型给出相应的 Java 实例,同时详细介绍 Thrift 异步客户端的实现,最后提出使用 Thrift 需要注意的事项。发布日期:2012 年 1 月 16 日 级别:中级 访问情况 :31460 次浏览 评论:9(查看|添加评论- 登录)平均分 (73个评分) 为本文评分前言:目前流行的服务调用方式有很多种,例如基于 SOAP 消息格式的 Web Service,
阅读全文
摘要:在Lucene 3.x时代,《Lucene In Action》是一本相当不错的参考书,书中详细介绍了Lucene各种高级使用技术,对于开发者来说非常实用。但是近期Lucene升级到了4.x版本,在性能等各方面有了很大的提高,值得在新项目中使用。然而Lucene 4.x中的API相比3.x来说有了很大的改变,《Lucene In Action》中的很多内容都已经过时了,并且由于4.x推出的时间不长,还没有比较好的文档来对用法进行说明,这个系列文章就是想记录下自己使用Lucene 4.x的经验体会,供大家参考使用。由于现在网络搜索都希望达到实时搜索的效果,用户上传文章后,希望立即在搜索结果中可见
阅读全文
摘要:Lucene不是一个现成的程序,类似文件搜索程序或web网络爬行器或是一个网站的搜索引擎。Lucene是一个软件库,一个开发工具包,而不是一个具有完整特征的搜索应用程序。它本身只关注文本的索引和搜索。Lucene使你可以为你的应用程序添加索引和搜索能力。目前已经有很多应用程序的搜索功能是基于 Lucene 的,比如 Eclipse 的帮助系统的搜索功能。Lucene 采用的是一种称为反向索引(inverted index)的机制。反向索引就是说我们维护了一个词/短语表,对于这个表中的每个词/短语,都有一个链表描述了有哪些文档包含了这个词/短语。这样在用户输入查询条件的时候,就能非常快的得到搜索
阅读全文
摘要:花了两天的时间研究了下Lucene.Net 发现确实挺好玩.... 最新版本是3.0.3 (最后更新时间2012-10) 可惜3.0.3版本的Lucene.net无法和盘古分词 (最新版为2.3.1.0 最后更新时间 2010-10)一起使用.....因为盘古分词 基于2.9.x.x版本 写的 ,在 3.0.3中很多 接口 和 类名 发生了 变化..(当然 网上 也有解决方案 :基于新的接口 重新 编译 盘古分词) 今天主要用的是 Lucene.Net 2.9.2.2 与盘古分词 2.3.0.0版本. 主要功能就是 创建索引,和搜索 下面贴出 2段代码 创建索引: View Cod...
阅读全文
摘要:var query= db.GetCollection("merchant").Find(Query.EQ(m => m.Id, id)) .SetFields(Fields.Include(m => m.Address).Include(m => m.Name));
阅读全文
摘要:如何提高Lucene构建索引的速度 hans(汉斯) 2013-01-27 10:12对于Lucene>=2.3:IndexWriter可以自行根据内存使用来释放缓存。调用writer.setRAMBufferSizeMB()方法设置缓存尺寸。确保你没有任何的遗留代码调用setMaxBufferedDocs方法,因为写入器可以根据两种情况一起释放缓存(哪个更早发生)。使用你可以提供的全部内存。在释放缓存之前使用更多的内存,意味着Lucene写入更大的段,意味着延迟合并的发生。LUCENE-843中的测试发现,针对所测内容集合48MB内存是最优值,但是,你的应用可能有不同的最优值。关闭复合
阅读全文
摘要:前言 首先自问自答几个问题,以让各位看官了解写此文的目的什么是站内搜索?与一般搜索的区别? 很多网站都有搜索功能,很多都是用SQL语句的Like实现的,但是Like无法做到模糊匹配(例如我搜索“.net学习”,如果有“.net的学习”,Like就无法搜索到,这明显不符合需求,但是站内搜索就能做到),另外Like会造成全盘扫描,会对数据库造成很大压力,为什么不用数据库全文检索,跟普通SQL一样,很傻瓜,灵活性不行为什么不用百度、google的站内搜索? 毕竟是别人的东西,用起来肯定会受制于人(哪天你的网站火了,它看你不爽了,就可能被K),主要还是索引的不够及时,网站新的内容,需要一定时间才能..
阅读全文
摘要:最近在学习Lucene的过程中遇到了需要多域搜索并排序的问题,在网上找了找,资料不是很多,现在都列出来,又需要的可以自己认真看看,都是从其他网站粘贴过来的,所以比较乱,感谢原创的作者们! 使用MultiFieldQueryParser类即可。示例代码:Java代码packagecom.lucene.search;importjava.io.File;importjava.io.IOException;54com.cnimportorg.apache.lucene.analysis.standard.StandardAnalyzer;importorg.apache.lucene.queryPa
阅读全文
摘要:1.针对多个域的一次性查询1.1.三种方案 使用lucene构造搜索引擎的时候,如果要针对多个域进行一次性查询,一般来说有三种方法: 第一种实现方法是创建多值的全包含域的文本进行索引,这个方案最简单。但是这个防范有个缺点:你不能直接对每个域的加权进行控制。 第二种方法是使用MultiFieldQueryParser,它是QueryParser的子类,它会在后台程序中实例化一个QueryParser对象,用来针对每个域进行查询表达式的解析,然后使用BooleanQuery将查询结果合并起来。当程序向BooleanQuery添加查询子句时,默认操作符OR被用于最简单的解析方法中。为了实现...
阅读全文
摘要:1,使用indexreader创建indexsearcher. 2,indexsearcher在使用完了以后不要关闭. 3.使用indexreader.isCurrent()判断索引是否被indexwriter改动. 4,如果索引被改动,indexsearcher.close()先前那个,然后new indexsearcher(indexreader).传string给searcher,searcher会维护一个内部的reader,当本次搜索结束后reader会被关掉.如果使用reader构造,reader在本次搜索结束后不会被关掉,除非你自己调用reader.close();所以用reade
阅读全文
摘要:Lucene版本:3.0一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比较大,那就很容易造成内存溢出!但是如果仅仅按照一般的单实例来写的话,如果更新了索引,那么在不重启服务的情况下,Searcher对象是搜索不到索引更新后的内容的.如何解决呢,这里给出一个方法!在这个方法里,建造了一个Factory类,分别管理IndexReader和IndexSearcher的单实例.import java.io.File; import java.io.IOException; ..
阅读全文
摘要:例子:public static void getUserRFM(DateTime beginTime, DateTime endTime) { MongoDatabase mongoDB = getConnection(); //会员消费明细的实体类 List shopplist = new List(); //获得Ky_shopplist集合 MongoCollection col = mongoDB.GetCollection("Ky_Shopplist"); //获得Ky_UserRFM的集合 MongoCollection colRFM = mongoDB.Get
阅读全文
摘要:作者:eaglet 盘古分词开发了多元分词算法,其与lucene.net 配合构建全文搜索,经测试准确度接近google和baidu的水平。现将一些实现方法和测试结果公布出来,供关心分词和搜索技术的朋友们参考。 中文分词按照分词粒度来分,分成 一元分词,二元分词,多元分词和精确分词等类型。一元分词就是最简单的分词,将所有的中文字符按照单字形式输出。二元分词按双字形式输出。多元分词则是将 一句话中可能的单词组合按照一定规则输出,允许输出的词有重叠。精确分词则是将一句话中最准确的单词组合输出,不允许输出的词有重叠。当然这里用精确这个 词来修饰只是为了与其他几种分词方法区分,不可能有完全精确的分..
阅读全文
摘要:在某些软件下载网站的全文搜索应用中往往需要根据部分或者全部的版本号来匹配查询。然而对于版本信息的提取,无论是采用增加单词还是其他什么办法都 无法很好的实现。好在盘古分词提供了自定义规则的接口,我们可以通过实现自己的自定义规则来完成一些特殊信息的提取。这篇文章也作为盘古分词自定义规则使 用的一个示例文章,希望大家看了这篇文章后可以举一反三,实现诸如IP地址提取,Email 提取,网址提取等等特殊提取功能的自定义规则。首先先说一下需求。我们希望将版本信息字符串 比如 V1.2.1.0 从文章中提取出来,分词为 v/1.2.1.0/1.2.1/1.2 这种形式,这样无论搜索用户输入 1.2.1.0
阅读全文
摘要:雅虎NCP是什么,NCP能做什么,为什么NCP能够成为网络黄页的终结者。NCP在颠覆既有市场格局的同时,其真实目的时什么?是成为网络化操作系统还是图谋最大化长尾广告。笔者相信,过不了多久,市场将会告诉我们答案。 我们先从雅虎NCP和黄页的定义说起: 黄页:黄页是工商企业、各类事业单位的电话号码簿,以刊登企业名称、地址、电话号码为主体内容。最早的工商企业电话号码簿印在黄色的纸上,故称黄页。现在流行的企业名录、工商指南、消费指南等,也可以算是黄页的各种表现形式;黄页可以印刷品、光盘、互联网等多种形式向公众发布及出版。网络黄页和黄页本质上没什么不同,只不过传播的介质从纸张和光盘变成了比特流,但通..
阅读全文
摘要:深凹的颧骨,扭曲的头发,淘气的露齿笑,一个5英尺高、100磅重的顽童模样。” 2000年7月17日,马云成为第一个登上《福布斯》封面的大陆企业家。从创办中国黄页到掌舵阿里巴巴,马云用梦想、承诺与坚持串起了自己的创业史。马云自喻为“一个骑在盲虎身上的盲人”,抱着根本不明白将来会怎么样的心态,他已挺过一个个创业的艰难时刻。 2000年7月,马云“登上”福布斯杂志封面 “骗子”马云与中国黄页 许多成功者的第一个创业项目都与后来真正做大的主业并不一致,马云也是如此。1991年,马云成立海博(英文“hope”的音译)翻译社,结果第一个月收入700元,房租2000元。军心动摇之际,马云独自背起大麻袋...
阅读全文
摘要:随着企业黄页的慢慢发展,以及伴随着互联网,电子商务行业的兴趣,传统的企业黄页渐渐的向网络企业黄页,移动企业黄页等新型企业黄页的的趋势发展。这种新型的企业黄页,是以传统的企业黄页为基础,把传统黄页搬到互联网,手机等移动设备上,利用互联网,手机等移动设备为载体,发行、传播、应用的电话号码簿,类似于百度、谷歌的搜索引擎,只是这种搜索引擎是在手机本机实现的,随时随地拿起手机,便可轻松查询企业的基本信息和企业简介或服务介绍。 加入企业黄页有什么好处? 一大把企业黄页库,提供全面详实的中小企业信息。是中国中小企业展示自我的优秀平台,是商人买卖产品、拓展市场及网络推广的首选。加入一大把中小企业信息库,即可免
阅读全文
摘要:华大黄页信息有限公司是一家为客户提供全方位、专业的商业分类信息及市场推广服务的信息服务公司。公司于1997年底在香港成立,并推出第一家服务于国内企业的专业网上黄页网站。目录1网站发展2企业文化3公司荣誉4发展事记网站发展 随着公司业务的不断发展,同时也为了更好的服务于国内企业,公司于1999年成立了联通黄页信息有限公司,在深圳出版的《联通黄页》是中国第一本国际版本的指引性分类广告媒体。8年来,先后又在广州、上海、东莞、惠州、佛山、厦门、无锡、常州等热点城市出版了完全按照国际黄页标准模式制作的黄页产品,并已在各地取得了稳健地发展。 中华大黄页网站和《联通黄页》印刷版以实用的资讯信息、丰富的数..
阅读全文
摘要:中国114黄页的核心价值观 以客为尊、以人为本、团队协作、卓越创新 中国114黄页的愿景 把中国114建设成为中国最大最具有市场影响力的电子商务门户,使每一个中小企业和商家都有能在网上做意。 中国114黄页的使命 提供安全、快捷、简单的电子商务,为客户创造更多的价值。 中国114黄页的三大理念 经营理念,人才理念,服务理念 中国黄页114的最大亮点 一、推广 只需在我们公司做网站,不用花推广的钱,就能达到做推广的效果,即让其他想购买贵公司产品的客户以最快的速度找到您,并进行交易,又能节省高额的推广费用,不是很划算吗? 二、模式 在其它公司做网站时都有空间限制,比如:我们的...
阅读全文
摘要:从1880年第一本黄页诞生至今,它的出现为人们的生活和商务活动带来了诸多的便利。这本厚厚的电话号簿,其使命就是要让人们找到一个准确有效的电话号码,然后通过通讯工具拨打这个号码,与对方建立起联系。近日,一种可以完成“终极使命”的商家电话直通黄页在701搜上实现,它向人们证实,黄页不仅可以查询电话,更可以拨打电话。黄页的终极使命 在701搜网站上,通过搜索找到的商家信息,可以直接通过页面上的免费网络电话,与商家直接对话。网络黄页变成了网民的在线电话薄,同时还是一个免费的电话机,通过一个简单的网页,完成传统厚重黄页的“终极使命”。与目前国内其它的黄页和生活服务类网站相比,701搜的这一模式还属首例。
阅读全文