`

searchServer IBM OminiFind / WebSphere Commerce SOLR

阅读更多

百度搜索研发部

http://stblog.baidu-tech.com/

 

IBM Ominifind Discovery Edition / IBM OminiFind Enterprise Edition / IBM WebSphere Commerce 7 SOLR

 

http://publib.boulder.ibm.com/infocenter/ode/v8r4m1/index.jsp

data limit 6000000~10000000  >>> ODE Server

 

Apache SOLR

http://wiki.apache.org/solr

http://lucene.apache.org/solr/

http://lucene.apache.org/solr/tutorial.html

 

使用 Apache Lucene 和 Solr 进行位置感知搜索

http://www.ibm.com/developerworks/cn/java/j-spatial/index.html

 

Solr+Tomcat在Windows下的搭建

http://www.iteye.com/topic/334507

   最近在学习收索引擎,找了一些资料,学着在Windows下搭建Solr+Tomcat,可是网上的资料要么太老,要么就是英文版的,看着很费劲。
   先来说说Solr,Solr 最初由 CNET Networks 开发,2006 年初,Apache Software Foundation 在 Lucene 顶级项目的支持下得到了 Solr。Solr 于 2007 年 1 月酝酿成熟,在整个项目孵化期间,Solr 稳步地积累各种特性并吸引了一个稳定的用户群体、贡献者和提交人。Solr 现在是 Lucene(Apache 的基于 Java 的全文本搜索引擎库)的一个子项目。
   下面是我的搭建过程,在我机子上能跑能跳的~~呵呵
开始,先要安装JDK1.5后以上的版本,然后当然得安装Tomcat,我用的Tomcat版本是apache-tomcat-6.0.18的,再去Sole的官网上把Solr下下来,Solr官网:http://lucene.apache.org/solr/,我下的是apache-solr-1.3.0.zip,把它解压为apache-solr-1.3.0。把apache-solr-1.3.0文件夹下的dist\apache-solr-1.3.0.war放到Tomcat下的webapps目录下并把它改名为solr.war(名字短点方便)。把Eapache-solr-1.3.0文件夹下的solr\example目录中的solr文件夹复制到Ttomcat目录下。在Ttomcat目录work\Catalina\localhost目录下创建一个solr.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="" debug="0" crossContext="true" >
   <Environment name="solr/home" type="java.lang.String" value="D:\apache-tomcat-6.0.18\solr" override="true" />
</Context>
最后启动Tomcat。可以打开http://localhost:8080/solr/admin;就会出现成功界面了。

 

solr-1.4.1安装笔记

http://www.iteye.com/topic/718602

 

Solr+lucene+庖丁分词的一个问题

http://www.iteye.com/topic/231150

我在用Solr+lucene做英文检索时一切正常,但加入庖丁后发现会出现问题
严重: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: SimpleFSLock@D:\solr-tomcat\data\index\write.lock
对于这个异常主要时因为lucene在写入索引时, 用在索引目录下建write.lock文件来标识锁定.而只有在执行close()方法后,才会删除这个锁文件.只要这个文件存在,其他的写索引的程序都会报错. 到这里我就很费解,只是加入了庖丁分词之后才出现这个问题,

 

Compass

http://compass-project.org/

http://www.oschina.net/p/compass

Compass是一个强大的,事务的,高性能的对象/搜索引擎映射(OSEM:object/search engine mapping)与一个Java持久层框架.Compass包括:  

* 搜索引擎抽象层(使用Lucene搜索引荐),
 * OSEM (Object/Search Engine Mapping) 支持,
 * 事务管理,
 * 类似于Google的简单关键字查询语言, 
 * 可扩展与模块化的框架,
 * 简单的API.

类似项目有 Hibernate Search

 

 

 

 HelpHttpClient.java

这里 public final static int MAX_TOTAL_CONNECTIONS = 1500; //默认20 现改为1500

Loadrunner模拟用户并发事务数 TPS 由此上升

 

 

Java代码
  1. package com.s*****.recommend.portal.ui.util;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import org.apache.http.HttpResponse;  
  6. import org.apache.http.HttpStatus;  
  7. import org.apache.http.HttpVersion;  
  8. import org.apache.http.client.ClientProtocolException;  
  9. import org.apache.http.client.HttpClient;  
  10. import org.apache.http.client.methods.HttpGet;  
  11. import org.apache.http.conn.ClientConnectionManager;  
  12. import org.apache.http.conn.params.ConnManagerParams;  
  13. import org.apache.http.conn.params.ConnPerRouteBean;  
  14. import org.apache.http.conn.scheme.PlainSocketFactory;  
  15. import org.apache.http.conn.scheme.Scheme;  
  16. import org.apache.http.conn.scheme.SchemeRegistry;  
  17. import org.apache.http.conn.ssl.SSLSocketFactory;  
  18. import org.apache.http.impl.client.DefaultHttpClient;  
  19. import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;  
  20. import org.apache.http.params.BasicHttpParams;  
  21. import org.apache.http.params.HttpConnectionParams;  
  22. import org.apache.http.params.HttpParams;  
  23. import org.apache.http.params.HttpProtocolParams;  
  24. import org.apache.http.protocol.HTTP;  
  25. import org.apache.http.util.EntityUtils;  
  26. import org.apache.log4j.Logger;  
  27.   
  28. /** 
  29.  *  
  30.  *  
  31.  * 功能描述: http 请求连接 
  32.  * @version 1.0.0 
  33.  */  
  34. public class HelpHttpClient   
  35. {  
  36.     private static Logger logger = Logger.getLogger(HttpClientUtil.class);  
  37.   
  38.     private static final String CHARSET = HTTP.UTF_8;  
  39.     private static HttpClient client;  
  40.   
  41.     /**  
  42.      * 最大连接数  
  43.      */    
  44.     public final static int MAX_TOTAL_CONNECTIONS = 1500;  //默认20 现改为1500 ,Loadrunner用户并发TPS 由此上升  
  45.     /**  
  46.      * 获取连接的最大等待时间  
  47.      */    
  48.     public final static int WAIT_TIMEOUT = 60000;    
  49.     /**  
  50.      * 每个路由最大连接数  
  51.      */    
  52.     public final static int MAX_ROUTE_CONNECTIONS = 1000;    
  53.     /**  
  54.      * 连接超时时间  
  55.      */    
  56.     public final static int CONNECT_TIMEOUT = 3000;    
  57.     /**  
  58.      * 读取超时时间  
  59.      */    
  60.     public final static int READ_TIMEOUT = 10000;    
  61.   
  62.   
  63.   
  64.     /** 
  65.      * 私有构造方法 
  66.      */  
  67.     private HelpHttpClient()   
  68.     {  
  69.     }  
  70.   
  71.     /** 
  72.      *  
  73.      * 功能描述:发送http 请求获取字符串 
  74.      * 输入参数:<按照参数定义顺序>  
  75.      * @param 参数说明   
  76.      * url 请求url 
  77.      * charset 转化字符串编码 
  78.      * 返回值:  String 
  79.      * @return  json 字符串 
  80.      * @see 需要参见的其它内容 
  81.      */  
  82.     public static String getJson(String url, String charset)  
  83.     {  
  84.         // 获取 url 连接  
  85.         HttpClient client = getHttpClient();  
  86.         HttpGet getMethod = new HttpGet(url);  
  87.         String jsonStr = "";  
  88.         try   
  89.         {  
  90.             // 执行请求  
  91.             HttpResponse response = client.execute(getMethod);  
  92.             // 响应结果,如果是200,则响应成功  
  93.             if (HttpStatus.SC_OK == response.getStatusLine().getStatusCode())  
  94.             {  
  95.                 // 将响应流转化为字符串  
  96.                 jsonStr = EntityUtils.toString(response.getEntity(), charset);  
  97.             }  
  98.   
  99.         } catch (ClientProtocolException e)   
  100.         {  
  101.             logger.debug("httpclient create failure.", e);  
  102.         } catch (IOException e)   
  103.         {  
  104.             logger.debug("httpclient create failure.", e);  
  105.         }  
  106.   
  107.         return jsonStr;  
  108.     }  
  109.   
  110.   
  111.     /** 
  112.      *  
  113.      * 功能描述:多线程 http 请求 
  114.      * 返回值:  类型 <说明>  
  115.      * @return 返回值 HttpClient 
  116.      * @see 需要参见的其它内容 
  117.      */  
  118.     @SuppressWarnings("deprecation")  
  119.     public static synchronized HttpClient getHttpClient()  
  120.     {  
  121.         if (null == client)  
  122.         {  
  123.             HttpParams httpParams = new BasicHttpParams();  
  124.   
  125.             // 设置基本参数  
  126.             HttpProtocolParams.setVersion(httpParams, HttpVersion.HTTP_1_1);  
  127.             HttpProtocolParams.setContentCharset(httpParams, CHARSET);  
  128.             HttpProtocolParams.setUseExpectContinue(httpParams, true);  
  129.   
  130.             // 设置最大连接数    
  131.             ConnManagerParams.setMaxTotalConnections(httpParams, MAX_TOTAL_CONNECTIONS);    
  132.             // 设置获取连接的最大等待时间    
  133.             ConnManagerParams.setTimeout(httpParams, WAIT_TIMEOUT);    
  134.             // 设置每个路由最大连接数    
  135.             ConnPerRouteBean connPerRoute = new ConnPerRouteBean(MAX_ROUTE_CONNECTIONS);    
  136.             ConnManagerParams.setMaxConnectionsPerRoute(httpParams,connPerRoute);    
  137.             // 设置连接超时时间    
  138.             HttpConnectionParams.setConnectionTimeout(httpParams, CONNECT_TIMEOUT);    
  139.             // 设置读取超时时间    
  140.             HttpConnectionParams.setSoTimeout(httpParams, READ_TIMEOUT);    
  141.   
  142.             SchemeRegistry regist = new SchemeRegistry();  
  143.             // 设置 http 请求支持http 和 https 两种模式  
  144.             regist.register(new Scheme("http"80,PlainSocketFactory.getSocketFactory()));  
  145.             regist.register(new Scheme("https"443, SSLSocketFactory.getSocketFactory()));  
  146.   
  147.             // 使用线程安全的链接管理创建 HttpClient  
  148.             ClientConnectionManager connManager = new ThreadSafeClientConnManager(httpParams, regist);  
  149.   
  150.             client = new DefaultHttpClient(connManager);  
  151.   
  152.         }  
  153.   
  154.         return client;  
  155.     }  
  156. }  

 

 

 end

分享到:
评论

相关推荐

    appServer IBM WebSphere / WAS 7 / 8.5 / was commerce

    **IBM WebSphere / WAS 7 / 8.5 / WAS Commerce 深度解析** IBM WebSphere Application Server(简称WAS)是IBM公司提供的一款强大的Java应用服务器,它支持多种企业级应用程序的部署和管理。在标题中提到的版本7、...

    leptonica-1.71.tar.gz

    /opt/IBM/WebSphere/AppServer/properties:/opt/IBM/WebSphere/AppServer/lib/startup.jar:/opt/IBM/WebSphere/AppServer/lib/bootstrap.jar:/opt/IBM/WebSphere/AppServer/lib/jsf-nls.jar:/opt/IBM/WebSphere/App...

    WEBSPHERE乱码问题的解决和处理

    /opt/IBM/WebSphere/AppServer/classes:/opt/IBM/WebSphere/AppServer/lib:/opt/IBM/WebSphere/AppServer/installedChannels:/opt/IBM/WebSphere/AppServer/lib/ext:/opt/IBM/WebSphere/AppServer/web/help:/opt/IBM...

    websphere常用目录

    日志目录位于 `/opt/IBM/WebSphere/AppServer/profiles/AppSrv01/logs/server1`,这是WebSphere记录系统运行状态、事件、错误和其他诊断信息的地方。日志文件包含的信息对于故障排查、性能调优和安全审计都极其重要...

    基于IBM Websphere Commerce 的电子商务平台简介

    IBM WebSphere Commerce是全球领先的电子商务解决方案之一,专为构建、扩展和管理复杂的在线商务环境而设计。这个平台提供了全面的功能,帮助企业实现B2C、B2B以及多渠道的商业运营。下面,我们将深入探讨基于IBM ...

    IBM WebSphere Commerce backend dev

    2. **服务器配置**:理解和配置IBM WebSphere Application Server,这是运行Commerce应用的基础,包括部署描述符的修改、服务器环境的调整等。 3. **数据库设计和管理**:Commerce与数据库紧密集成,如DB2,开发者...

    IBM WebSphere Commerce安装教程

    IBM WebSphere Commerce是一款强大的电子商务平台,它为企业提供了一整套解决方案,用于构建、管理和扩展线上购物体验。在安装和配置WebSphere Commerce时,我们需要遵循一系列步骤,确保系统能够正确无误地运行。...

    websphere commerce的使用即websphere commerce图解.pdf

    - [IBM DeveloperWorks 文章](http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0503_mistry/0503_mistry.html) - [YouTube 教程视频](http://www.youtube.com/watch?v=5G7b86a_r1U) - [51CTO ...

    was安装文档

    ./manageprofiles.sh -create -profileName Dmgr01 -profilePath /usr/IBM/WebSphere/AppServer/profiles/Dmgr01 -templatePath /usr/IBM/WebSphere/AppServer/profileTemplates/dmgr -nodeName dmgrnode -cellName...

    IBM WebSphere Commerce Training

    IBM WebSphere Commerce是全球领先的电子商务平台之一,专为企业级在线交易提供强大支持。这款解决方案集成了先进的技术、灵活的架构和丰富的功能,旨在帮助企业构建、管理和优化其数字化商业体验。 在"IBM ...

    linux下websphere的安装配置

    1. 启动服务:使用 `/opt/IBM/WebSphere/AppServer/bin/startServer.sh server1` 命令启动 WebSphere 服务。 2. 停止服务:使用 `/opt/IBM/WebSphere/AppServer/bin/stopServer.sh server1` 命令停止 WebSphere 服务...

    suse10上websphere安装

    - 启动WebSphere应用服务器使用命令:`/opt/IBM/Websphere/AppServer/profiles/AppSrv01/bin/startServer.sh server1`。 - 关闭服务器则运行:`/opt/IBM/Websphere/AppServer/profiles/AppSrv01/bin/stopServer.sh...

    IBM WebSphere Commerce Suite助BuyUSA提高出口贸易能力

    【软件组件】IBM WebSphere Commerce Suite是整个系统的基础,它包含了多种组件,如WebSphere Application Server(高级版)用于运行和管理应用程序,IBM DB2 Universal Database作为数据存储解决方案,IBM Net.Data...

    IBM WebSphere应用服务器简介

    IBM WebSphere应用服务器简介

    WebSphere Commerce 反编译包

    WebSphere Commerce的开发通常还需要其他IBM提供的工具,如WebSphere Application Server和WebSphere Commerce Developer等。 7. **最佳实践**:在使用反编译包时,应遵循良好的软件工程实践,如编写清晰的注释、...

    WebSphere+v7.0+培训教程(完整版)

    WebSphere Application Server v7.0:IBM® Rational® Application Developer V7.5 WebSphere Application Server v7.0 附加值增强 WebSphere Application Server v7.0 特色总结 WebSphere Application Server v...

Global site tag (gtag.js) - Google Analytics