摘要:
前言需求源自项目中的一些应用,比如相册功能,通常用户上传相片后我们都会针对该相片再生成一张缩略图,用于其它页面上的列表显示。随便看一下,大部分网站基本都是将原图等比缩放来生成缩略图。但完美主义者会发现一些问题,比如显示排版时想让相片缩略图列表非常统一、整齐、和美观,比如要求每张缩略图大小固定为120 x 90且不拉伸变形怎么办?再比如用户头像如何让缩略图比原图更清晰?或是如何在上传的图片下加一个半透明的LOGO水印?OK,本文根据自己的项目代码描述以上问题的解决方案,全部基于.Net Framework类库完成,代码中包含了C#图片处理的一些基础知识,与大家分享,个人能力有限,不足之处还请及时 阅读全文
摘要:
近实时搜索就是他能打开一个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;... 阅读全文