随笔分类 - Lucene
摘要:近期一直在使用SolrCloud,乘着酒醉大概总结一下。1.安装原来一直有个误区,认为SolrCloud启动时,必须至少有个core才可以,其实不然。首先按照Solr官方wiki上正常部署Solr,然后在Tomcat的启动参数中加入以下参数:如果使用内置的zookeeper:-DzkRun-DzkHost=localhost:9080。对于DzHost,可以是多个地址,用逗号分割,端口是Tomcat的端口+1000。一般Tomcat的端口是8080,所以这里是9080。如果使用外部的zookeeper:-DzkHost={ip:port}对于这两种情况,使用多个zookeeper时,多需要修改
阅读全文
摘要:EasyNet.Solr 4.4.0已经发布,可以直接从http://easynet.codeplex.com/下载试用并反馈。最新版本进行了以下改动:1.根据Solr的变动,更新时依据ContentType来确定提交的数据类型(XML、Javabin、Json等等)。2.ISolrUpdateOperations、ISolrQueryOperations接口添加了collection参数。3.只维护基于Javabin协议的实现,其他基于XML、Json等等可以自行实现。4.SolrQueryConnection采用POST方式,以支持长查询。EasyNet.Solr简单易用,扩展性强,一般不
阅读全文
摘要:Solr 4.0(http://lucene.apache.org/solr/)已经发布了有一段时间了,其中Solr 4.0中有一个不错的特性:Atom Update,也就是原子更新。有了原子更新这个东东,我们就可以只更新某个字段。下面的代码演示了如何用solrj和EasyNet.Solr(http://easynet.codeplex.com)进行原子更新。使用solrj进行原子更新: 1 import org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer 2 import org.apache.solr.common.So
阅读全文
摘要:需要修改IKAnalyzer.java、IKTokenizer.java、IKTokenizerFactory.java。1importjava.io.Reader;2importorg.apache.lucene.analysis.Analyzer;3importorg.apache.lucene.analysis.Tokenizer;45/**6*实现LuceneAnalyzer基于IKTokenizer的中文分词器7*8*@author林良益9*10*/11publicfinalclassIKAnalyzerextendsAnalyzer{1213privatebooleanisMaxW
阅读全文
摘要:一.QueryElevation1.enableElevation2.exclusive3.forceElevation4.editorialMarkerFieldName:The name of the field that editorial results will be written out as when using the QueryElevationComponent, which automatically configures the EditorialMarkerFactory. The default name is "elevated"5.excl
阅读全文
摘要:一.Stats1.stats2.stats.field3.stats.facet二.Terms1.terms:The component name. Set to true to turn on the TermsComponent2.terms.fl:Required. Specify the field to look up terms in.3.terms.lower:Optional. The lower bound term to start at. The TermEnum will start at the next term after this term in the dic
阅读全文
摘要:一.Group1.group.query2.group.field3.group.func4.group.sort5.group.limit:the limit for the number of documents in each group6.group.offset:the offset for the doclist of each group7.group.main:treat the first group result as the main result. true/false8.group.format:treat the first group result as the
阅读全文
摘要:一.Analysis1.analysis.query:Holds the query to be analyzed2.analysis.showmatch:Set totrueto indicate that the index tokens that match query tokens should be marked as "mateched"3.analysis.fieldname:Holds the value of the field which should be analyzed4.analysis.fieldtype:Holds a comma-separ
阅读全文
摘要:一.DisMax1.tie:query and init param for tiebreaker value2.qf:query and init param for query fields3.pf:query and init param for phrase boost fields4.pf2:query and init param for bigram phrase boost fields5.pf3:query and init param for trigram phrase boost fields6.mm:query and init param for MinShould
阅读全文
摘要:这个月月末准备办一个免费的Solr交流会,有兴趣的同学可以加入到QQ群:181963043报名参加。主要内容:1:Solr的基本架构和应用2:Solr分布式3:Solr性能优化4:基于Solr的全文检索架构5:Solr开发 6:EasyNet.Solr的应用地点可能在北京东四十条附近。
阅读全文
摘要:检索和推荐在电子商务运营中有着比较重要的地位,通过检索用户可以方便找到想要的商品,通过推荐,可以主动提供用户可能想要的商品,检索和推荐的应用,都增加了用户的购买和未来购买的可能性。基于用户的检索,不是和其他常见的检索一样,只要检索条件相同,都会出现同样的结果。每个用户都有各自的特性和偏好,在一个阶段内都有不同的动向,基于用户的检索平台,通过对用户行为数据的分析,得出用户的特性和偏好,甚至近期的动向,在检索中根据用户身份标识,展现给用户基于自己的结果。举个例子,比如一个用户在以往购买的商品或经常浏览的商品中,偏好蓝色,大尺码,而且价格一般比较高,那么检索平台提供给此用户的商品结果中,蓝色、大尺.
阅读全文
摘要:关于如何提高Solr的性能问题,可以参见Solr的官方指南:http://wiki.apache.org/solr/SolrPerformanceFactors,对于Lucene的性能问题,可以参考Lucene的官方指南:http://wiki.apache.org/lucene-java/BasicsOfPerformance。以下是本人在Solr应用中的一些小小的经验。1.关于系统平台的选择。本人建议部署在linux系统下,JRE和Tomcat最好采用最新版本,linux也要参考网上的一些资料,对其进行优化。根据实际软硬件,优化tomcat和jvm参数,tomcat采用nio conne.
阅读全文
摘要:在上一边随笔EasyNet.Solr架构中,写道了EasyNet.Solr具有良好的扩展性,内置了对xml、json文本格式返回数据的处理。步骤如下:1.定义ICodecFactory,由于xml、json都是基于文本的,所以我们使用TextCodecFactory。2.创建指定ICodecFactory的Solr连接ISolrConnection。3. 创建ISolrQueryOperations<T>用于Solr查询,T为返回结构数据类型,此处应该为string类型。4.预先定义好的IObjectDeserialize<T>,对象反序列化接口实现。T为要反序列化为的
阅读全文
摘要:在EasyNet.Solr中,有两个接口最重要,一个是编解码器接口ICodec,一个是Solr输出结果解析器接口ISolrResponseParser<ST, DT>。ICode定义如下;View Code 1///<summary>2///编解码器3///</summary>4publicinterfaceICodec5{6///<summary>7///对对象进行编码,并输出到流8///</summary>9///<paramname="obj">要进行编码的对象</param>10//
阅读全文
摘要:今天早上的时候,突然想写写自己开发EasyNet.Solr的历程。在期间遇到了很多问题,比如架构问题、性能问题等等。我很想和大家分享一下自己的一些想法,我觉得谈不上什么经验,有不当的地方,欢迎大家拍砖。记得当时我决定用Solr做公司的全文检索应用,Solr给我的最初感觉就是功能完善, 性能也满足目前需求。但是在选择.Net客户端时,我却有些为难。当时只有两种选择SolrSharp和Solr.Net。SolrSharp已经很久没有更新了,于是最终决定用Solr.Net。因为我喜欢简单(我喜欢简单,我是凡客),所以自己在Solr.Net进行了精简。记得正式上线的晚上,在线上测试时,发现Solr..
阅读全文
摘要:EasyNet.Solr(http://easynet.codeplex.com)是由本人开发的 solr(http://lucene.apache.org/solr)c#客户端。它具有以下特性:1.支持solr 3.1(不兼容solr 1.4.x)2. 默认支持solr最高效的javabin协议3.基于接口的序列化和反序列化协议,没有采用反射4. 可以在架构基础上方便扩展处理solr支持的其他协议,如xml,json等等以下是基本的使用示例:索引和检索用到的实体类 Indexing and retrieval of entity class usedpublic class Example.
阅读全文
摘要:两台测试虚机,系统为REHL 5.3 x64,正常安装最新版本的JDK,正确设置SSH无密码登录。服务器一:192.168.56.101 dev1服务器二:192.168.56.102 dev2从http://apache.freelamp.com/hadoop/core/hadoop-0.20.1/下载hadoop-0.20.1.tar.gz,把hadoop-0.20.1.tar.gz拷贝到de...
阅读全文
摘要:软件环境:操作系统:REHL 5JDK:JDK 1.6.0_16Tomcat: 6.0.20一:安装JDK从http://java.sun.com/javase/downloads/index.jsp下载JDK的RPM安装包jdk-6u16-linux-i586-rpm.bin,放在/home/apps(临时目录)下,在SSH Client中执行:# sh /home/apps/jdk-6u16-...
阅读全文