摘要: 大多数的应用程序将数据存储在关系数据库、xml文件中。对这样的数据进行搜索是很常见的应用。所谓的DataImportHandler提供一种可配置的方式向solr导入数据,可以一次全部导入,也可以增量导入。 概览 目标 能够读取关系数据库中的数据。通过可配置的方式,能够将数据库中多列、多表的数据生成solr文档能够通过solr文档更新solr 提供 通过配置文件就能够导入所有数据的能力 能够发现并处理 由insert、update带来的变化(我们假定在表中有一个叫做“last-modified的列”)能够配置 “完全导入”和“增量导入”的时间 让读取xml文件,并建立索引成为可配置。 能够将.. 阅读全文
posted @ 2009-09-16 12:36 searchDM 阅读(571) 评论(0) 推荐(0)
摘要: 使用Java程序从数据库中查询大量的数据时出现异常:java.lang.OutOfMemoryError: Java heap space 在JVM中如果98%的时间是用于GC且可用的 Heap size 不足2%的时候将抛出此异常信息。 JVM堆的设置是指java程序运行过程中JVM可以调配使用的内存空间的设置. JVM在启动的时候会自动设置Heap size的值,其初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等选项可进行设置。例如:java -jar -Xmn16m -Xms64m -Xmx128m M 阅读全文
posted @ 2009-09-16 12:31 searchDM 阅读(871) 评论(0) 推荐(0)
摘要: 启动hadoop,但ssh 端口不是默认的22怎么样?好在它可以配置。在conf/hadoop-env.sh里改下。如: exportHADOOP_SSH_OPTS="-p1234" 阅读全文
posted @ 2009-09-16 12:29 searchDM 阅读(567) 评论(0) 推荐(0)
摘要: 在 Eclipse 环境下进行开发和调试 http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop2/index.html IBM Hadoop Eclipse Plugin http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop2/mapreduce_plugin.zip 它可以把本地代码在hadoop上运行. 右击main类, 点"Run on hadoop", 它会把类打包成jar上传到服务器, 然后运行. 但有个缺点:main 的输入参数 阅读全文
posted @ 2009-09-16 12:29 searchDM 阅读(620) 评论(0) 推荐(0)
摘要: infoQ.com的:分布式计算开源框架Hadoop入门实践,作者:岑文初 分布式计算开源框架Hadoop介绍Hadoop中的集群配置和使用技巧Hadoop基本流程与应用开发 ibm.com的:用 Hadoop 进行分布式并行编程 基本概念与安装部署程序实例与分析部署到分布式环境 Hadoop的0.17版本中文文档:http://www.hadoop.org.cn/document/cn/r0.17.0/ 其它: Hadoop分布式文件系统:架构和设计要点 http://www.hadoop.org.cn/ 官网:http://hadoop.apache.org/ 官方wiki:h... 阅读全文
posted @ 2009-09-16 12:28 searchDM 阅读(500) 评论(0) 推荐(0)
摘要: mmseg4j 第一个版本就可以方便地与 solr 集成,在 google code 上面有简单的说明,第一版的发布博客也有简单的使用说明:中文分词 mmseg4j。为了更清楚说明在 solr 中使用 mmseg4j 中文分词,还是写篇博客吧。 目前有两个版本的 mmseg4j,1.7 版比较耗内存(一个词库目录就要 50M 左右),所以在默认jvm内存大小会抛出 OutOfMemoryErroy。我这里示例两个词库目录,所以不用目前最新版 1.7.2。而用 1.6.2 版。下载:mmseg4j-1.6.2 和 词库,或就下载一个源码包(包括了词库,从源码构建请看:中文分词 mmseg4j 1 阅读全文
posted @ 2009-09-16 12:27 searchDM 阅读(817) 评论(0) 推荐(0)
摘要: mmseg4j 发布也有一段时间了,前些日子忙着发布新的版本,修正 bug 之类的。使用示例一直拖到现在,其实 svn 上的 test 有使用 lucene 例子。如果你了解 lucene ,就不用例子也可以很方便与它集成。 mmseg4j 有几个 analyzer:SimpleAnalyzer、ComplexAnalyzer、MaxWordAnalyzer、MMSegAnalyzer。前面 三个都是继承 MMSegAnalyzer,MMSegAnalyzer 默认使用 max-word 方式分词。这些 analyzer 都有无参数的构造函数,还有一个带词库目录为参数的构造函数。怎... 阅读全文
posted @ 2009-09-16 12:24 searchDM 阅读(1151) 评论(0) 推荐(0)
摘要: Solr Distributed Searching (分布式搜索)是 solr 1.3 的特性。大索引,可能有多种原因要把它分成N个小的索引,可以把小索引放到其它的机器上,但是我没这么多机器怎么办呢?solr 1.3 有 multicore,恩,multicore 简单使用可以看我那一篇文章。各个 core 各不干扰,可以独立做索引(做索引时,可以分散到各个core上)。 现来看下 Distributed Searching 的效果,打开:http://localhost:8080/solr-cores/core0/select/?q=*%3A*&version=2.2&st 阅读全文
posted @ 2009-09-16 12:22 searchDM 阅读(846) 评论(0) 推荐(0)
摘要: Solr Multicore 是 solr 1.3 的新特性。其目的一个solr实例,可以有多个搜索应用。下面来小试一下。 官方发布的示例。在solr1.3/example/multicore目录(可以认为是multi.home)下,有一个 solr.xml(这只是默认文件,当然也可以指定别的文件),如: <?xmlversion="1.0"encoding="UTF-8"?><solrpersistent="false"><coresadminPath="/admin/cores"& 阅读全文
posted @ 2009-09-16 12:21 searchDM 阅读(1218) 评论(2) 推荐(0)
摘要: 如果想让 solr 有更加强大的功能或在查询时做一些特别的处理。可以在 solrconfig.xml 里注册自定义的 QueryParser(查询解析器),这是 solr 1.3 的新功能(插件功能),如: <queryParsername="mylucene"class="org.apache.solr.search.MyQParserPlugin"/><queryParser name="mylucene" class="org.apache.solr.search.MyQParserPlugin&qu 阅读全文
posted @ 2009-09-16 12:20 searchDM 阅读(568) 评论(0) 推荐(0)
摘要: solr 1.3 发布的时候,lucene 2.4还没有正式发布,其的 lucene 是开发版,现在lucene 2.4早已发布,那就换上新的 lucene 吧。 下载 solr 1.3 http://labs.xiaonei.com/apache-mirror/lucene/solr/1.3.0/apache-solr-1.3.0.zip和 lucene 2.4 http://labs.xiaonei.com/apache-mirror/lucene/java/lucene-2.4.0.zip到目录如e:/search/, 把 e:/search/apache-solr-1.3/... 阅读全文
posted @ 2009-09-16 12:19 searchDM 阅读(266) 评论(0) 推荐(0)
摘要: 经过几天的开发与调试,mmseg4j 1.6 版可以发布了。1.6 版主要实现与下功能: 实现多分词,在complex基础上,把长的词(大于2)拆出多个词。按二元分词,且把不存在的词去了,如:“西伯利亚” -> "西|伯利|利亚","西伯" 不存在词库中;“中国人民银行”-> "中国|国人|人民|银行"支持多个词库文件,在词库目录中放"words"前缀且".dic"后缀的文件。如:data/words-my.dic单字的单位独立一个文件(data/units.dic, 已经放入jar 阅读全文
posted @ 2009-09-16 12:18 searchDM 阅读(341) 评论(0) 推荐(0)
摘要: solr 1.3 增加了两种格式的输出,现在对各种输出给个测试报告。有 xml、json、php、phps输出作个对比,对相同相同查询各请求1W次,下面测试结果: solr-writer-test 点击放大 上面的结果表明,json是最快的(吞吐量最大),而且数据量最小(K速最小),php、php、xml差不多,但,php与phps快一点点,但数据量大了一些。 得出的结论: 吞吐量:json > php > phps > xml 数据量:json < xml < phps < php 如果不知道报表中的列代表的含义可以看 Jmeter测试报表相关参数说明 还 阅读全文
posted @ 2009-09-16 12:18 searchDM 阅读(560) 评论(0) 推荐(0)
摘要: 昨日做索引的程序重构下,测试 optimize 索引(在原有数据基础上提交索引)时,在开发的机器(windows)里总是会有两段索引,要再 optimize 才只是一个索引段,当然不是设置 maxSegments=2。反复运行还是如此,为了说明是否写的程序有问题,就用 solr 自带的 post.sh (或 post.jar)提交 optimize。结果还是有两段,再提交一次optimize 才是一个段。这问题…… 旧的程序运行得很正常,看了下它也没有提交两次优化。然后把新的程序也放到服务器(linux)上运行,结果是只有一个段。 恩,可以认为是与文件系统有关,optimize 的时候是先新生 阅读全文
posted @ 2009-09-16 12:17 searchDM 阅读(419) 评论(0) 推荐(0)
摘要: 默认 solr 优化索引的时候,只一个段,比起 N段(N不是很大)来说,可能有点耗时。索引为N段也不会一个文件太大。 可以有两种方式: url: curl"http://localhost:8080/solr/update?maxSegments=2&optimize=true"curl "http://localhost:8080/solr/update?maxSegments=2&optimize=true" xml: curlhttp://localhost:8080/solr/update--data-binary"&l 阅读全文
posted @ 2009-09-16 12:16 searchDM 阅读(360) 评论(0) 推荐(0)
摘要: 昨天再一次看 lucene 2.4 的新特性的时候,发现有一个TimeLimitedCollector东西,看类名也就知其什么功能了。 目前用的solr都没有设置超时,所以压力比较大的时候查询会越来越慢,也就越积越多,最终可能让 solr 挂了。总是想要个 timeout 功能,可能会对解决此问题有一定帮助。之前看lucene 2.4新特性时,没太注意。昨日注意到了,就要试一下。 solr 1.3 用的是 lucene 2.4 dev 版,还要看下 solr 有没有使用这特性。搜索源码发现 solr 1.3 有使用这个新特性。太好了,不用 hack了。 慢慢发现,solr 1.3 有这样的请求 阅读全文
posted @ 2009-09-16 12:16 searchDM 阅读(989) 评论(0) 推荐(0)
摘要: spellcheck 可以实现输入“错误”提示,如:输入“周杰仑”搜索时,提示:您是不是要找“周杰伦”。Lucene 有这样的功能。用 n-gram 方法和 Levenshtein distance (编辑距离,算相似度)算法实现。 原理大概:用正确的词条,以 n-gram 方法去折分,并建立索引(官方叫:dictionary index),在查询时,去查dictionary index,可以返回正确词条,于是这些词条就是“提示”。 solr 1.2 也有此功能。solr 1.3 用组件的方式实现此功能。我现用 solr 1.3 来试下。默认有spellcheck组件了(使已经配置... 阅读全文
posted @ 2009-09-16 12:15 searchDM 阅读(726) 评论(2) 推荐(0)
摘要: 昨天在用 solrj 在 solr 的子机上做索引,报错: The@DeprecatedSolrUpdateServletdoesnotacceptqueryparameters:/update?wt=javabin&amp;version=2.2Ifyouareusingsolrj,makesuretoregisterarequesthandlerto/updateratherthenusethisservlet.Add:<requestHandlername="/update"class="solr.XmlUpdateRequestHandler 阅读全文
posted @ 2009-09-16 12:14 searchDM 阅读(359) 评论(0) 推荐(0)
摘要: 有个频繁做索引的应用,它同时也对外提供搜索服务。大部分是 solr 1.3 的默认配置。solr 做索引,有时候报: 2009-7-13 9:48:06 org.apache.solr.common.SolrException log严重: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: SingleInstanceLock: write.lock at org.apache.lucene.store.Lock.obtain(Lock.java:85) ... 阅读全文
posted @ 2009-09-16 12:13 searchDM 阅读(978) 评论(0) 推荐(0)
摘要: Solr 1.4 版(未发布)开始有 SolrReplication 的东西,它是分布式复制组件。在 Solr 1.4 以下的版本完全靠 solr.home/bin 目录下的脚本来完成子机从主机复制索引文件。造成了平台有关了(只能在 unix 类操作系统下使用)。windows 平台下基本没戏(排除自己写复制的细节)。Solr 1.4 引进 SolrReplication 非常不错,这样 windows 平台下有福了,同时还提供 HTTP 的 API,可以方便做一些复杂的处理。 Solr 1.4 主要特性: 复制不需要额外的脚本。仅仅在 solrconfig.xml 配置就行。同时... 阅读全文
posted @ 2009-09-16 12:12 searchDM 阅读(394) 评论(0) 推荐(0)
摘要: solr 1.3 中使用的 cache 是 LRUCache,可以用 memcached 实现 SolrCache,替换 solr 的默认的 LRUCache。 环境描述:有 N 台 solr 的子机(只提供搜索服务,用户搜索请求负载均衡到这些机器,N > 2),solr 默认缓存是 LRUCache。单台机的内存是有限制的,而且每台机的缓存是独立的,而请求是轮询分布到每台机上,所以缓存会有重复、且会浪费。把每台机的缓存都放到 memcached 中,每台子机共同创建缓存,并且可以分享其它机器创建的缓存,再加上 memcached 容量大,命中率会有提升。 于是,我就想用 memc... 阅读全文
posted @ 2009-09-16 12:11 searchDM 阅读(654) 评论(0) 推荐(0)
摘要: solr 的 Distributed Searching 试用 一直想了解分布搜索与索引。Lucene有MultiSearcher,solr1.2的只能有单个索引,现在1.3可以有Distributed Searching这玩意。可以从多个索引里搜索出并合并结果返回给你。这些索引不是replication的,是分割的。可以先%num方式索引在 num台机器上,然后用solr的shards参数。 如: shards=localhost:8080/use-solr1.3,localhost:9080/use-solr1.3&q=chenlb 测试... 阅读全文
posted @ 2009-09-16 12:07 searchDM 阅读(467) 评论(0) 推荐(0)
摘要: centos 配置 ssh 在VMware安装一个CentOS的Sever版,终端里的内容不可滚动,不方便。在win下远程登录不错(win下有个Xshell)。默认安装ssh是有的。只是hosts访问问题。 1.在hosts.deny文件尾添加sshd:ALL 意思是拒绝所有访问请求 [root@localhost~]#vi/etc/hosts.deny 修改后看起来如下: # #hosts.denyThisfiledescribesthenamesofthehostswhichare #*not*allowedtousetheloc... 阅读全文
posted @ 2009-09-16 12:07 searchDM 阅读(832) 评论(0) 推荐(0)
摘要: 在Unix和Linux下安装JDK及环境设置 -------------------------------------------------------------------------------- Fedora Core 3上已经成功安装了jdk(jdk-1_5_0_02-linux-i586.rpm),过程很简单: 1. 先从网上下载jdk(jdk-1_5_0_02-linux-i586.rpm.bin,jdk-1_5_0_06-linux-i586.rpm.bin也成功) ,推荐SUN的官方网站http://java.sun.com/javase/downloads/index. 阅读全文
posted @ 2009-09-16 12:06 searchDM 阅读(217) 评论(0) 推荐(0)
摘要: solr 分布式其实是分发,这概念像Mysql的复制。所有的索引的改变都在主服务器里,所有的查询都在从服务里。从服务器不断地(定时)从主服务器拉内容,以保持数据一致。先描述下我的环境:solr-master(192.168.1.181), solr-slave(192.168.1.155), jdke1.6.0_06, tomcat-5.5.26, solr-1.2tomcat_home在 /home/chenlb/tomcat-5.5.26solr_home在 /home/chenlb/solr-homesolr解压后的目录 /home/chenlb/solr-1.2.0最好两机可以ssh无 阅读全文
posted @ 2009-09-16 12:04 searchDM 阅读(687) 评论(0) 推荐(0)
摘要: Solr 涉及的术语,简单介绍下: Auto-warming(自动预热) 当打开一个新的缓存时,它把在旧缓存里命中较高的键/值添加到新的缓存里。Constraint(限制) 限制对象集的方法。Facet(层面) 对象集的一个方面或特定的一部分,这可以用来资源分类。Filter(过虑器) 它由上下方决定,可能是:1. Constraint(限制)的那称呼。2. 限制查询结果的"fq"参数。3. 涉及特定的Lucene的"Filter"类。Solr Home Dir(Solr主目录) 又叫Solr Home Directory或Solr Home,它是Sol 阅读全文
posted @ 2009-09-16 12:03 searchDM 阅读(518) 评论(0) 推荐(0)
摘要: 在经过使用了庖丁以后,这里说说怎么将目前很火很流行的IK集成进SOLR,其实方法真的很简单,比paoding方便不少。这里很感谢IK的作者,蓝山咖啡,很感谢你为中文分词做出的贡献。 作者博客:http://linliangyi2007.javaeye.com 入正题: 1》请先去作者博客参看IK下载地址,主要就是一个IKAnalyzer3.1.1Stable.jar。我这里用的是最新版! Java代码 packagecom.yeedoo.slor.tokenizer;importjava.io.Reader;importorg.apache.lucene.analysis.TokenSt... 阅读全文
posted @ 2009-09-16 11:56 searchDM 阅读(1290) 评论(0) 推荐(0)
摘要: solr不可谓是个好东西啊,越往下挖掘,他的各种功能逐渐的展现在我的面前,对于solr的架构人员,不得不令人佩服啊。 几天前偶尔看到IBM developmentWorks上面的一片文章,看到了数据库数据的导入,以前我一直是这么认为的,像这种导入可以自己去写程序去导入。 写程序 可以将数据读出100条,如果你的内存够大,可以是1000条甚至更多,然后放入Collection中,批量提交至solr。或者读取数据写入xml文件中,再将该文件提交到solr等等。但是,在我看到那一篇文章的时候,原来还有这么巧妙的招。 废话不多说,入正题。 一.首先准备好solr的dataimport功能需要的... 阅读全文
posted @ 2009-09-16 11:55 searchDM 阅读(1039) 评论(0) 推荐(0)
摘要: solr的一些查询语法 1. 首先假设我的数据里fields有:name, tel, address 预设的搜寻是name这个字段, 如果要搜寻的数据刚好就是 name 这个字段,就不需要指定搜寻字段名称. 2. 查询规则: 如欲查询特定字段(非预设字段),请在查询词前加上该字段名称加 “:” (不包含”号) 符号, 例如: address:北京市海淀区上地软件园 tel:88xxxxx1 1>. q代表query input 2>. version代表solr版本(建议不要变动此变量) 3>. start代表显示结果从哪一笔结果资料开始,预设为0代表第一笔, rows是说要 阅读全文
posted @ 2009-09-16 11:54 searchDM 阅读(1015) 评论(0) 推荐(0)
摘要: 引用Bory.Chanhttp://blog.chenlb.com/2009/04/apply-solr-collapsing-patch-remove-duplicate-result.html 打上SOLR-236_collapsing.patch补丁,实现 solr 搜索结果折叠、除去重复的搜索结果,可以实现类似google搜索结果的“站内的其它相关信息 ”。solr collapsing patch 是用 hash 某个字段来实现折叠重复结果的。下面我演示下应用这个补丁并搜索试用下。 其实 solr 上已经有了这功能的实现:solr 1.3 collapse patch, 请看:ht. 阅读全文
posted @ 2009-09-16 11:53 searchDM 阅读(1171) 评论(2) 推荐(0)
摘要: 某日,突发奇想,想写这么一个博客,希望记录下所有在solr中使用的毛病。而且我希望广大的看友们也能一起来说说你们平时遇到的各种错误,这样大家才能一起更好的进步! 话不多说,进入正题 1》solr 做索引时报 Lock obtain timed out: SingleInstanceLock: write.lock 有个频繁做索引的应用,它同时也对外提供搜索服务。大部分是 solr 1.3 的默认配置。solr 做索引,有时候报: Xml代码 2009-7-139:48:06org.apache.solr.common.SolrExceptionlog严重:org.apache.lucen... 阅读全文
posted @ 2009-09-16 11:51 searchDM 阅读(816) 评论(0) 推荐(0)
摘要: 在做solr查询的时候,solr提供了很多参数来扩展它自身的强大功能!以下是使用频率最高的一些参数! 具体请看: 1.常用 q - 查询字符串,必须的。查询语句(类似SQL) 相关详细的操作还需lucene 的query 语法 fl - 指定返回那些字段内容,用逗号或空格分隔多个。 start - 返回第一条记录在完整找到结果中的偏移位置,0开始,一般分页用。 rows - 指定返回结果最多有多少条记录,配合start来实现分页。 sort - 排序,格式:sort=<field name>+<desc|asc>[,<field name>+<desc 阅读全文
posted @ 2009-09-16 11:50 searchDM 阅读(856) 评论(0) 推荐(0)
摘要: 相信很多人,在准备提交数据让solr建立索引的那刻,很纳闷,尽管看了不少网上的一些文章,但是我想依然还是有不少不理解的地方。 比如提交一个xml,采用post方式,尽管有些文章说了可以采用httpclient。但是我那个时候,还不是很理解,当然现在看来其实也没有 什么了。但是对于一个刚入门solr的初学者,我想讲讲关于solr1.3的 solrj( sorlr J 目前使用二进制的格式作为默认的格式。对于solr1.2的用户通过显示的设置才能使用XML格式。)!先上一个例子: Java代码 publicstaticfinalStringSOLR_URL="http://localho 阅读全文
posted @ 2009-09-16 11:49 searchDM 阅读(1030) 评论(0) 推荐(0)
摘要: Solr Multicore 是 solr 1.3 的新特性。其目的一个solr实例,可以有多个搜索应用。 下面着手来将solr给出的一个example跑出来,在《利用SOLR搭建企业搜索平台 之一(运行solr)》这篇文章里面已经讲了怎样来运行solr,这篇文章是基于《利用SOLR搭建企业搜索平台 之一(运行solr)》,有不明白的请参见http://lianj-lee.javaeye.com/blog/424383 1》找到solr下载包中的example文件夹,在它的下面有个multicore文件夹,将这个文件夹下面的所有东西copy到 c:\solr-tomcat\solr下面。 .. 阅读全文
posted @ 2009-09-16 11:39 searchDM 阅读(732) 评论(0) 推荐(0)
摘要: 运行solr是个很简单的事,如何让solr高效运行你的项目,这个就不容易了。要考虑的因素太多。这里很重要一个就是对solr的配置要了解。懂得配置文件每个配置项的含义,这样操作起来就会如鱼得水! 在solr里面主要的就是solr的主目录下面的schema.xml,solrConfig.xml,如果你看过前两篇文章的话,你应该知道solr的主目录处于什么位置(c:\solr-tomcat\solr\conf\)。 在这个文章中,我们首先来说说这个schema.xml。 schema.xml,这个相当于数据表配置文件,它定义了加入索引的数据的数据类型的。主要包括types、fields和其他的... 阅读全文
posted @ 2009-09-16 11:38 searchDM 阅读(924) 评论(0) 推荐(0)
摘要: 这篇文章,主要说的是 怎么在solr中加入中文分词,参考了一些文章,但是还是花了不少时间才搞出的。可能是大侠们太牛了,所以很多细节东西都没有写出来!但是要指出的是很多文章都是抄来抄去的! 入正题: 在上面的一个文章中,已经使solr跑起来了,在上面的基础上,加入中文分词。我用的是paoding分词器! 1》请下好paoding分词器,下载地址: http://code.google.com/p/paoding/downloads/list,在这里要非常感谢paoding作者:qieqie 在使用paoding的时候要注意:paoding的dic位置,也就是字典的位置,有两种办法解决: ... 阅读全文
posted @ 2009-09-16 11:37 searchDM 阅读(928) 评论(0) 推荐(0)
摘要: 在网络上找了很多的关于solr的资料,发现非常的不全面,即使就是官方的wiki,也是如此! 基于现阶段正在研究的solr应用,陆续的会分享我的一些经验! 今天要说的是: 怎么跑起来! 1》 首先下载好solr,我用的是 solr1.3,下载地址: windows版本http://labs.xiaonei.com/apache-mirror/lucene/solr/1.3.0/apache-solr-1.3.0.zip linux版本http://labs.xiaonei.com/apache-mirror/lucene/solr/1.3.0/apache-solr-1.3.0.tgz ... 阅读全文
posted @ 2009-09-16 11:37 searchDM 阅读(680) 评论(0) 推荐(0)
摘要: 用ajax去请求solr服务。返回json,然后解释。让solr返回json的参数是wt=json。然后javascript用evel()解释成对象。 我的solr会返回:auother,title,introduce这几个域。先创建一个jsp或html,如:json.jsp 1.json.jsp关键的html内容 <formaction="select/"name="f1"method="get"onsubmit="xmlhttpPost('/solr/select');returnfalse;&qu 阅读全文
posted @ 2009-09-16 11:33 searchDM 阅读(765) 评论(0) 推荐(0)
摘要: solr的服务器端配置晚上有很多文章。 solr的客户端可以采用JAVA,PYTHON,C#,PHP,RUBY,JSON等语言。 使用java的客户端组件即为solrJ. 在Tomcat下部署一个应用。使用solrj,需要使用到这些jar文件: apache-solr-solrj-1.3.0.jar apache-solr-common-1.3.0.jar commons-httpclient-3.1.jar commons-codec-1.3.jar 这些文件在solr项目中都有提供。 阅读全文
posted @ 2009-09-16 11:20 searchDM 阅读(381) 评论(0) 推荐(0)
摘要: 之前使用的是solr+paoding,后来发现庖丁的分词表面上比较容易扩展,但是实际上并不需要那么细分地去为每个细分领域建立一个词典。再发现庖丁的分词过于琐屑,在实际的生产环境中没有mmseg4j效果好。 solr的配置就不多说了。 参考:http://wiki.apache.org/solr/SolrTomcat 关于mmseg4j的配置还得好好说说。 网上有篇很好的文章: http://blog.chenlb.com/2009/04/solr-chinese-segment-mmseg4j-use-demo.html 说得比较详细了,不过我想对它的词典补充下: 第一,mmseg4... 阅读全文
posted @ 2009-09-16 11:19 searchDM 阅读(463) 评论(0) 推荐(0)
摘要: mmseg4j 第一个版本就可以方便地与 solr 集成,在 google code 上面有简单的说明,第一版的发布博客也有简单的使用说明:中文分词 mmseg4j。为了更清楚说明在 solr 中使用 mmseg4j 中文分词,还是写篇博客吧。 目前有两个版本的 mmseg4j,1.7 版比较耗内存(一个词库目录就要 50M 左右),所以在默认jvm内存大小会抛出 OutOfMemoryErroy。我这里示例两个词库目录,所以不用目前最新版 1.7.2。而用 1.6.2 版。下载:mmseg4j-1.6.2 和 词库,或就下载一个源码包(包括了词库,从源码构建请看:中文分词 mmseg4j 1 阅读全文
posted @ 2009-09-16 11:17 searchDM 阅读(711) 评论(0) 推荐(0)
摘要: 1.schema.xml注意确定文档唯一性的field的indexed属性必须为truesolrconfig.xml 1.注释 <dataDir>${solr.data.dir:./solr/data}</dataDir>,否则索引目录的根是当前目录,即tomcat的bin目录。 阅读全文
posted @ 2009-09-16 11:12 searchDM 阅读(504) 评论(0) 推荐(0)
摘要: Data-config为solr的data-import处理器配置数据来源。 依次按照如下树状结构: <dataConfig><dataSource name="tdp" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/dbname" user="root" password="85TIANJIAOyinmi"/> <!--更多dat 阅读全文
posted @ 2009-09-16 11:11 searchDM 阅读(492) 评论(0) 推荐(0)
摘要: 最近开发,使用了solr,发现这个东东真是方便。很早就听说了,但是一直觉得配置较难,而且需要学习封装后的组件本来就要费时间,所以知道将lucene弄个熟练后才开始学习solr。 最近写了这样的一段代码, view plaincopy to clipboardprint?·········10········20········30· 阅读全文
posted @ 2009-09-16 11:11 searchDM 阅读(707) 评论(0) 推荐(0)
摘要: 开发配置solr的multicore, 在solr的安装包,example下有个multicore,把该文件下的所有文件,包括solr.xml,都拷贝到已经配置好的solr.home目录下。参考(原文地址:http://lianj-lee.javaeye.com/blog/425414): 1》找到solr下载包中的example文件夹,在它的下面有个multicore文件夹,将这个文件夹下面的所有东西copy到 c:"solr-tomcat"solr下面。 注意:有一个 solr.xml(这只是默认文件,当然也可以指定别的文件),如: Xml代码 <?xmlvers 阅读全文
posted @ 2009-09-16 11:10 searchDM 阅读(743) 评论(0) 推荐(0)
摘要: 近期在开发时候需要将商品按照某些属性归类,lucene是很难做到了,自己开发效率不能够保证,于是想到使用solr。一直认为solr配置比较复杂,使用也不容易上手,网上中文资料极少,将自己的摸索成果记下来,供大家分享。 solr在schema.xml中配置defaultSearchField,即为默认搜索的域,要想在多个域中搜索,需要将这些域复制到同一个域 中,一般就这些域复制到默认搜索的域,在schema.xml中配置copyFiled,注意被目的域的multiValued属性药设置为true。 阅读全文
posted @ 2009-09-16 11:07 searchDM 阅读(720) 评论(0) 推荐(0)
摘要: 为了和以前的程序兼容,在solr建立索引的时候,将id设为gid,结果在建立索引时候出现如下错误: org.apache.solr.common.SolrException: Document [null] missing required field: id .... 原来solr中每个文档都必须有主键,而且默认主键名称为id。 在schema.xml的fields 后有: <uniqueKey>id</uniqueKey> 阅读全文
posted @ 2009-09-16 11:06 searchDM 阅读(625) 评论(0) 推荐(0)
摘要: 纠正上篇关于默认主键的问题 solr的data-config中可以为每个entity 配置主键的。 solr提供了可配置的增量索引,在dataimport.properties中保存了上次索引的状态,solr文档说是开始时间,solr更具表格的last—modified 列来判断自从上次索引来,哪些行是改动过的。 详情见:http://wiki.apache.org/solr/DataImportHandler#head-70d3fdda52de9ee4fdb54e1c6f84199f0e1caa76 找到一篇翻译: http://mxsfengg.blog.163.com/blog/s... 阅读全文
posted @ 2009-09-16 11:04 searchDM 阅读(928) 评论(0) 推荐(0)