摘要:
作者:Ethan McCallum;shenpipi 原文:http://www.onjava.com/pub/a/onjava/2006/06/14/what-is-jetty.html Jetty 是一个开源的servlet容器,它为基于Java的web内容,例如JSP和servlet提供运行环境。Jetty是使用Java语言编写的,它的 API以一组JAR包的形式发布。开发人员可以将Jetty容器实例化成一个对象,可以迅速为一些独立运行(stand-alone)的Java应用提供 网络和web连接。 本文包括以下内容: 1.嵌入式Servlet容器有什么意义? 2.建立一个嵌入式的... 阅读全文
摘要:
关于这篇文章我本来不想写,但是后来在我自己亲身的操作中,发生了很多意想不到的事,到最后我完成整个操作的时候,才发现非常的简单,简单的倒难以想象。但是就是这么一个简单的操作过程却被很多人写的复杂要命。所以我觉得有必要给广大初学者以最快速度搞清楚问题。 入正题: 1》你有两台机器,在每台机器上运行 ssh-keygen -t rsa命令后一路三个回车,它的结果是在你当前用户的主文件夹下面会生成一个 .ssh文件夹里面有两个文件。 2》cp id_rsa.pub authorized_keys将两台机器的authorized_keys互相交换,可以使用命令: scp authorized use.. 阅读全文
摘要:
今天要说的是关于solr的高亮设置,我一直认为solr的高亮设置封装的还是有一些麻烦的,所以,现在说说到底要怎么用它。 入正题: 1》首先看SolrQuery类,此类有方法setHighlight(true),当设置为true时,表示开启了高亮 2》 还是SolrQuery类,看方法 Java代码 //以下给两个字段开启了高亮,分别是name,description,query.addHighlightField("name");query.addHighlightField("description");//以下两个方法主要是在高亮的关键字前后加上ht 阅读全文
摘要:
最近出了一个问题,搞了真的有一天,最后终于搞定了,就是这个范围查询,当时使用的是100 TO 500的时候,总是会出现这个范围之外的结果,令人心寒啊。 后来仔细看了看schema.xml中的注释,请注意是1.4版本,以前1.3版本是没有出现这种情况的。 在1.4中的 各个数值型有很多种,其中float是不支持范围查询的,有sfloat可以支持,具体的我也不记得了,希望大家在使用的时候,要注意看看这些注释,不要忽律啊! 阅读全文
摘要:
做solr的开发已经很长时间了,对于官方的solrj还是不是很满意,所以为了广大solrer能更方便的利用solr,个人封装了一些代码,算是一个小小的框架把,欢迎大家拍砖。 目前项目已经开源,地址:http://code.google.com/p/clientforsolr/ 目前的功能: 1》对solr的commit,update,delete,optimize等进行了封装,提供了更加方便的操作; 2》对实体类到SolrInputDocument或者SolrDocument到实体类或者SolrDocument到SolrInputDocument提供了简单的转换; 3》提供了SolrSer.. 阅读全文
摘要:
1. “:” 指定字段查指定值,如返回所有值*:* 2. “?” 表示单个任意字符的通配 3. “*” 表示多个任意字符的通配(不能在检索的项开始使用*或者?符号) 4. “~” 表示模糊检索,如检索拼写类似于”roam”的项这样写:roam~将找到形如foam和roams的单词;roam~0.8,检索返回相似度在0.8以上的记录。 5. 邻近检索,如检索相隔10个单词的”apache”和”jakarta”,”jakarta apache”~10 6. “^” 控制相关度检索,如检索jakarta apache,同时希望去让”jakarta”的相关度更加好,那么在其后加上”^”符号和增... 阅读全文
摘要:
昨天晚上详细的说了说lucene的分析器,分词器,过滤器。今天我们来说说solr中的这三者吧。他是怎么基于lucene来写的。部分内容参见网上某文章 关于lucene的分析器,分词器,过滤器,请看:http://lianj-lee.javaeye.com/blog/501247 入正题: 对一个document进行索引时,其中的每个field中的数据都会经历分析(根据上面的一个博客可以知道,分析就是组合分词和过滤),最终将一句话分成单个的单词,去掉句子当中的空白符号,大写转换小写,复数转单数,去掉多余的词,进行同义词代换等等。 如:This is a blog! this, is... 阅读全文
摘要:
在很多时候,我们可能会需要增加某一个字段的权重,以合理的显示搜索结果。 例如:有一个schma,有三个字段:chapterId, title, content. 我们希望某一个关键字如果在title中匹配了,就要优先显示,而在content中匹配了,就放在搜索结果的后面。当然,如果两者同时匹配当然没什么好说的了。 看看solr中如何做到吧。 title:(test1 test2)^4 content:(test1 test2) 给title字段增加权重,优先匹配 关于^后面的数字4,经过我测试,最佳值应该是有n个字段就写成n+1,当然希望大家能更好的去测试! 阅读全文
摘要:
自定义标签必须实现下面三个接口中的一个:Tag、IterationTag、BodyTag 1.Tag 如果要实现这个接口,可以通过扩展TagSupport这个类,来写自己需要的方法,而不需要把Tag接口中的所有方法实现。 Tag接口的方法:doStartTag()、doEndTag()、getParent()、setParent()、release()、setPageContext() 在Tag类代码中不能像jsp一样,直接使用out隐含对象,他有一个对象可以使用pageContext,通过它的getOut()方法可以得到out对象。在标签内部,访问任何的隐含对象,都是通过调用pageCont 阅读全文
摘要:
java.lang.OutOfMemoryError: Java heap space + myeclipse中分配tomcat启动时所占内存大小 //首先检查程序有没有限入死循环 这个问题主要还是由这个问题 java.lang.OutOfMemoryError: Java heap space 引起的。第一次出现这样的的问题以后,引发了其他的问题。在网上一查可能是JAVA的堆栈设置太小的原因。... 阅读全文
摘要:
Solr 1.4 中的 TokenizerFactory 有变化。以至旧的 solr 分词扩展不能用。它的 create 方法要求返回 Tokenizer,而 PaodingTokenizer 不是继承 Tokenizer 的。所以不太方便。因此写个包装。 新写一个 SolrPaodingTokenizer 继承 Tokenizer,而 PaodingTokenizer 是其属性。如: packagecom.chenlb.solr.paoding;importjava.io.IOException;importjava.io.Reader;importn... 阅读全文
摘要:
简介: 不管是通过支持 GPS 的智能手机查找最近的咖啡馆,还是通过社交站点查找附近的朋友,或是查看特定城市中运输某种商品的所有货车,越来越多的人和企业都使用位置感知的搜索服 务。创建位置感知搜索服务通常属于昂贵的专用解决方案的一部分,并且一般由地理空间专家完成。不过,很流行的开源搜索库 Apache Lucene 和强大的 Lucene 搜索服务器 Apache Solr 最近添加了空间位置功能。Lucene 和 Solr 专家 Grant Ingersoll 将逐步向您介绍空间搜索的基础知识,并演示如何利用这些功能来增强您的下一个位置感知应用程序。 地... 阅读全文
摘要:
当研究院和企业能获取足够的专项研究预算之后,能从数据和用户输入中学习的智能应用程序将变得更加常见。人们对机器学习技巧(比 如说集群、协作筛选和分类)的需求前所未有地增长,无论是查找一大群人的共性还是自动标记海量 Web 内容。Apache Mahout 项目旨在帮助开发人员更加方便快捷地创建智能应用程序。Mahout 的创始者 Grant Ingersoll 介绍了机器学习的基本概念,并演示了如何使用 Mahout 来实现文档集群、提出建议和组织内容。在信息时代,公司和个人的成功越来越依赖于迅速有效地将大量数据转化为可操作的信息。无论是每天处理数以千计的个人电子邮件消息,还是从海量博客文章中推 阅读全文
摘要:
Resin 经验总结 1. 怎样关闭目录浏览方式?查 了些资料,大多数都是说可以 将directory-servlet设置为 “none” 来禁止目录浏览,但是这种方式只是针对于Resin2.x,在3.x或4.x中已经不使用directory-servlet了。后来看了下官方的文档资 料,原来关闭目录浏览的方法很简单,只需要将resin.conf中 <servle... 阅读全文
摘要:
网上有很多SOLR的文章,但是大多都是翻译自SOLR的官方WIKI,尤其是对分布式说的较含糊,在部署过程中,出现很多问题,令人摸不着头脑,下面就有些我遇到的情况及解决方案作下描述,希望对大家有用。 SOLR复制模式下分布式应用的基本原理: SOLR主要通过SHELL脚本与SOLR的相互协调完成快照在主服务器与辅服务器下的同步完成,该脚本位于:SOLR的安装目录: Solr\apps\src\scripts。 首先先讲下参与分发的各个模块的组成: snapshooter(MASTER) 快照触发生成脚本 由 主服务器负责被动生成,触发机制为:SOLR的RunExecutableListen... 阅读全文
摘要:
需求: 实现SOLR主,辅服务器更新同步,每次客户端COMMIT请求都会及时应用在辅服务器上。实现MULTICORE,实际生产环境中往往会有多个搜索应用实例。 步骤: 一、 准备条件 服务器准备 准备两台服务器: 一台用作主服务器(192.168.0.36),负责分发索引 另一台负责辅服务器(192.168.0.46),负责承载搜索服务。 2. 软件环境 Linux版本不限,32,64位不限 应用容器:TOMCAT 6.0 JAVA版本:JDK1.6以上版本 Solr应用环境目录: /solr/video/ (可使用ln –s 创建软连接) 和 /solr/album/ (本例设定为... 阅读全文
摘要:
在SOLR应用中,需要支持对指定关键词部分匹配的应用场景 如何实现SOLR的模糊检索(半匹配)? 何谓模糊检索(半匹配): 这种方式是生产环境下经常要使用到的检索方式,通过对命中请求关键词分词后的一个或多个词元的进行检索方式叫做半匹配或模糊匹配,(注意: 这里要与SOLR检索运算符“~” 检索方式区分开)。 如用户输入关键词:战争人,但是索引库里收录只有“战争之人”,这时如果输入: name:战争人,想要在索引库里匹配到“战争之人”是不可行的,SOLR定会返回空结果集。 一般正常的做法是 输入:name:战争 OR name:人 这就是SOLR告诉我们的解决办法。 看到这里,... 阅读全文
摘要:
虽然项目全部采用了UTF-8编码,所有的源文件*.java,*.jsc,*.html,*.ftl都采用了UTF-8编码。可是还是出现了乱码问题。很是不爽,后来找到了tomcat,和resin的配置。 Tomcat的配置。(conf/server.xml)<!--Defineanon-SSLHTTP/1.1Connectoronport8080--><Connectorport="80"maxHttpHeaderSize="8192"maxThreads="150"minSpareThreads="25&qu 阅读全文