君子博学而日参省乎己 则知明而行无过矣

博客园 首页 新随笔 联系 订阅 管理

随笔分类 - lucene.net&solr

上一页 1 2 3 4 5 6 7 下一页

摘要:packagecom.doculibre.constellio.servlets;importjava.net.MalformedURLException;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importorg.apache.solr.client.solrj.SolrQuery;importorg.apache.solr.client.solrj.SolrServer;importorg.apache.solr.client.solrj.Solr 阅读全文
posted @ 2012-08-29 16:57 刺猬的温驯 阅读(718) 评论(0) 推荐(0) 编辑

摘要:转载http://mxsfengg.blog.163.com/blog/static/2637021820083225206732/大多数的应用程序将数据存储在关系数据库、xml文件中。对这样的数据进行搜索是很常见的应用。所谓的DataImportHandler提供一种可配置的方式向solr导入数据,可以一次全部导入,也可以增量导入。概览目标 能够读取关系数据库中的数据。 通过可配置的方式,能够将数据库中多列、多表的数据生成solr文档 能够通过solr文档更新solr 提供 通过配置文件就能够导入所有数据的能力 能够发现并处理 由insert、up... 阅读全文
posted @ 2012-08-10 12:57 刺猬的温驯 阅读(806) 评论(0) 推荐(0) 编辑

摘要:转载 http://www.ibm.com/developerworks/cn/java/j-spatial/简介:不管是通过支持 GPS 的智能手机查找最近的咖啡馆,还是通过社交站点查找附近的朋友,或是查看特定城市中运输某种商品的所有货车,越来越多的人和企业都使用位置感知的搜索服务。创建位置感知搜索服务通常属于昂贵的专用解决方案的一部分,并且一般由地理空间专家完成。不过,很流行的开源搜索库 Apache Lucene 和强大的 Lucene 搜索服务器 Apache Solr 最近添加了空间位置功能。Lucene 和 Solr 专家 Grant Ingersoll 将逐步向您介绍空间搜索的基 阅读全文
posted @ 2012-08-08 13:39 刺猬的温驯 阅读(215) 评论(0) 推荐(0) 编辑

摘要:上文中介绍了定时器实现实时索引数据的解决方案,本文对其进行补充,介绍数据导入的配置1 配置RequestHandler<!--DataImportHandler--><requestHandlername="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler"><lstname="defaults"><strname="config">db/db-data-config.xml 阅读全文
posted @ 2012-08-04 14:50 刺猬的温驯 阅读(1597) 评论(0) 推荐(0) 编辑

摘要:企业要求数据表的数据更新后能够实时的被搜索引擎搜索到,查找solr的DataImport的文档提到了一个定时器实现这种实时要求的解决方案实现方法:1 配置监听器web.xml<listener><listener-class>org.apache.solr.handler.dataimport.scheduler.ApplicationListener</listener-class> </listener>2 引入jar文件注:如果用的是jre6,官方下载的jar文件要重新编译,貌似是版本不兼容jar文件包括三个类(1) 监听器Applicat 阅读全文
posted @ 2012-08-04 14:25 刺猬的温驯 阅读(1583) 评论(0) 推荐(0) 编辑

摘要:http://mxsfengg.iteye.com/blog/277913本文主要讨论solr中的dataImportHandler机制,对这个不熟的朋友,可以先看下。solr wiki中的dataimporthandler这篇文章,笔者也对dataimporthandler进行了一些翻译,不过效果不是很好,有兴趣的朋友也可以参考一下。http://mxsfengg.blog.163.com/blog/static/26370218200810250524813/。 想对比较多的数据建立索引,当然要考虑一个量的问题。之前怀疑sqlEntityProcessor是一条条的去数据库中取数据的,因为 阅读全文
posted @ 2012-08-03 10:27 刺猬的温驯 阅读(1630) 评论(0) 推荐(0) 编辑

摘要:1、LRUCache的实现分析在分析LRUCache前先对LinkedHashMap做些介绍。LinkedHashMap继承于HashMap,它使用了一个双向链表来存储Map中的Entry顺序关系,这种顺序有两种,一种是LRU顺序,一种是插入顺序,这可以由其构造函数public LinkedHash... 阅读全文
posted @ 2012-08-02 21:48 刺猬的温驯 阅读(10059) 评论(0) 推荐(5) 编辑

摘要:本文将介绍Solr查询中涉及到的Cache使用及相关的实现。Solr查询的核心类就是SolrIndexSearcher,每个core通常在同一时刻只由当前的SolrIndexSearcher供上层的handler使用(当切换SolrIndexSearcher时可能会有两个同时提供服务),而Solr的... 阅读全文
posted @ 2012-08-02 21:47 刺猬的温驯 阅读(298) 评论(0) 推荐(0) 编辑

摘要:http://guoyunsky.iteye.com/blog/761308最近要使用Solr做分布式搜索,自己一开始也是从网上搜集一些资料照着做.其中发现对Solr分布式搜索有个误区,会导致搜索结果不正确.比如我这里有两个Shand:1)http://localhost:8080/solr1.4/core0/2)http://localhost:8080/solr1.4/core1/ 我要从中找出查询为110排名为前30的数据,于是我用以下URL: 1.http://localhost:8080/solr1.4/core0/select?q=110&shards=localhost: 阅读全文
posted @ 2012-08-02 20:56 刺猬的温驯 阅读(281) 评论(0) 推荐(0) 编辑

摘要:http://guoyunsky.iteye.com/blog/759148Solr有个很方便的处理器叫DataImportHandler,可以通过配置配置db-data-config.xml配置各种数据源然后从中导入数据进行索引,很方便我们进行开发.但是之前从数据库导入数据一直有个问题,就是如果数据库中数据过大,就会导致内存溢出.自己经过阅读源码以及发邮件到Solr邮件列表,终于找到了解决办法,这里拿出来共享. 这里我的Solr版本是Solr1.4.0,数据库是Sql Server2005.其他数据库可能有些不适用(请在其他数据库运行成功的同学也分享下),但根据这个思路应该都有自己的解决方案 阅读全文
posted @ 2012-08-02 20:54 刺猬的温驯 阅读(305) 评论(0) 推荐(0) 编辑

摘要:转载http://13shu.iteye.com/blog/7438251、请求被solr的过滤器拦截转发到RequestHandlerBase中的handleRequest()2、handleRequest()中调用handleRequestBody()(抽象的)根据请求参数qt=standard查找solrconfig.xml配置文件(SolrConfig初始化)中找到SearchHandler类Xml代码<requestHandlername="standard"class="solr.SearchHandler"default=" 阅读全文
posted @ 2012-07-28 21:01 刺猬的温驯 阅读(1434) 评论(0) 推荐(0) 编辑

摘要:1、在solrconfig.xml中增加Xml代码<queryParsername="imdismax"class="com.szhtp.search.parse.IMDisMaxQParserPlugin"/><requestHandlername="imdismax"class="solr.SearchHandler"><lstname="defaults"><strname="defType">imdismax</s 阅读全文
posted @ 2012-07-28 20:58 刺猬的温驯 阅读(470) 评论(0) 推荐(0) 编辑

摘要:转载http://www.colorfuldays.org/program/solr/solr%E6%89%A9%E5%B1%95dismaxqparser/最近产品的同事反应给我一个搜索的问题,用户在输入如“QueryParser定制”时搜索不到结果,而搜索“QueryParser 定制”,就能找到正确的结果。这个问题导致搜索无结果率偏高。前天开始致力于解决该问题,经过两天的研究,最终通过定制QueryParser解决该问题。这个问题的解决方案是定制了Solr的QueryParser,下面讲一下如何定制Solr的QueryParser。我们的搜索引擎使用的是edismax类型,因为一些业务需 阅读全文
posted @ 2012-07-28 20:54 刺猬的温驯 阅读(1307) 评论(0) 推荐(0) 编辑

摘要:转载http://www.colorfuldays.org/program/solr/solr_edismax_boost/使用Solr搭建搜索引擎很容易,但是如何制定合理的打分规则(boost)做排序却是一个很头痛的事情。Solr本身的排序打分规则是继承自Lucene的文本相关度的打分即boost,这一套算法对于通用的提供全文检索的服务来讲,已经够用了,但是对于一些专门领域的搜索来讲,文本相关度的打分是不合适的。如何来定制适合自身业务的排序打分规则(boost)呢?经过这段时间的思考与实践,想到了如下三个方法1、定制Lucene的boost算法,加入自己希望的业务规则;2、使用Solr的ed 阅读全文
posted @ 2012-07-28 20:52 刺猬的温驯 阅读(3520) 评论(0) 推荐(0) 编辑

摘要:默认情况下,Solr查询语法只有两种形式:关键词或者以空格分隔的关键词组。当查询英文时,英文本身就是以空格来区分词的,所以Solr就能直接获取英文词并组装Query;但是中文句子中间没有空格,Solr查询时把整个句子交给Query,然后由Query再按照Field来分词、查询。这样就丧失了DisMax中qf所能带来的好处。如果能够在用户输入之后,传入DisMax和QueryComponent之前,把中文句子分割为:关键词+空格+关键词,就能享受Solr中的所有好处。分析DisMaxQParserPlugin和DisMaxQParser的实现,在DisMaxQParser中能够获得默认查询字段和 阅读全文
posted @ 2012-07-28 20:21 刺猬的温驯 阅读(1298) 评论(0) 推荐(0) 编辑

摘要:在很多情况下,我们并不想自己主动触发COMMIT相应的XML给SOLR,这样带来很多的不便,恰好,SOLR通过配置文件可以自行在满足指定的条件下自动的COMMIT索引,同时,让前端检索实例可以检索到最新生成的数据,而不需要人为干预。 方法很简单:找到solrConfig.xml文件找到以下行,并增加以下配置view plaincopy to clipboardprint?<updateHandlerclass="solr.DirectUpdateHandler2"><autoCommit><maxDocs>10000</maxDoc 阅读全文
posted @ 2012-07-28 20:12 刺猬的温驯 阅读(263) 评论(0) 推荐(0) 编辑

摘要:转载自:http://www.cnblogs.com/ezhangliang/archive/2012/04/11/2441945.htmlScheduler主要解决两个问题:1.定时增量更新索引。2.定时重做索引。经过测试,Scheduler已经可以实现完全基于配置,无需开发功能,无需人工干预的情况下实现以上两个功能(结合 Solr 的Data Import Request Handler前提下)。为了方便以后使用,我将代码放到http://code.google.com上,地址是:http://code.google.com/p/solr-dataimport-scheduler/这里贴出 阅读全文
posted @ 2012-07-28 19:54 刺猬的温驯 阅读(1002) 评论(0) 推荐(0) 编辑

摘要:转载自http://martin3000.iteye.com/blog/1328833使用DataImportHandler进行简单数据导入还是比较有效的,特别是DIH中针对简单的数据库表,可以把完全导入和增量导入合并成一个语句,非常方便。我的使用方式如下所示1。配置schemaXml代码 <requestHandlername="/dataimport"class="org.apache.solr.handler.dataimport.DataImportHandler"> <lstname="defaults"& 阅读全文
posted @ 2012-07-28 19:33 刺猬的温驯 阅读(3513) 评论(0) 推荐(1) 编辑

摘要:一、Facet介绍 solr facet 是solr搜索的一大特色,facet不好翻译,有说是垂直搜索,有说是分片搜索,但都不是很好,还是懒得翻译了,就叫facet ,具体功能看下面的例子意会吧。 比如你上淘宝,输入“笔记本”进行搜索,就会出现品牌分类,价格范围等分类,这个就叫facet了。这个例子也许好不是那么准确的描述facet,不过基本上就是这个意思。对输入关键字后搜索出来的结果再进行分类。二、Facet查询进行Facet查询需要在请求参数中加入”facet=on”或者”facet=true”只有这样Facet组件才起作用.1.FieldFacetFacet字段通过在请求中加入”face 阅读全文
posted @ 2012-07-28 19:28 刺猬的温驯 阅读(6440) 评论(0) 推荐(0) 编辑

摘要:solr将以导航为目的的查询结果称为facet. 它并不会修改查询结果信息, 只是在查询结果上根据分类添加了count信息, 然后用户根据count信息做进一步的查询, 比如淘宝的查询列表中, 上面会表示不同的类目相关查询结果的数量.比如搜索数码相机, 在搜索结果栏会根据厂商, 分辨率等维度列出, 这里厂商, 分辨率就是一个个facet.然后在厂商下面会有nikon, canon, sony等品牌, 这个叫约束(constraints)接下来是根据选择, 列出当前的导航路径, 这个叫面包屑(breadcrumb).solr有几种facet:普通facet, 比如从厂商品牌的维度建立fact查询 阅读全文
posted @ 2012-07-28 19:26 刺猬的温驯 阅读(675) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 下一页