solr windows linux 下环境搭建

简介: solr不是一个应用而是一个插件,不分linux和windows版本,是对luence的一个封装 windows下搭建 这里忽略java安装和tomcat安装,这里使用的是solr-4.10.0   1、到apache下载solr,地址: http://mirrors.hust.edu.cn/apache/lucene/solr/   2、解

solr不是一个应用而是一个插件,不分linux和windows版本,是对luence的一个封装

windows下搭建

这里忽略java安装和tomcat安装,这里使用的是solr-4.10.0


 

1、到apache下载solr,地址:

http://mirrors.hust.edu.cn/apache/lucene/solr/

 

2、解压出solr-4.10.0

 

3、复制solr-4.10.0\example\webapps中的solr.war文件到tomcat安装目录中的webapps文件夹下

 

4、运行tomcat。(忽略怎么运行tomcat),tomcat会自动解压solr.war文件。

 

5、删除solr.war文件。(不然每次启动tomcat都会发布一次)

 

6、回到tomcat的webapps目录下,记事本打开solr\WEB-INF\web.xml文件。

加入如下代码:在<web-app />节点内的最后。

<env-entry> 
   <env-entry-name>solr/home</env-entry-name> 
   <env-entry-value>E:\solrhome</env-entry-value> 
   <env-entry-type>java.lang.String</env-entry-type> 
</env-entry>

如上代码,需要在E盘新建一个文件夹:solrhome

 

7、回到解压的solr-4.10.0目录,打开文件夹:solr-4.10.0\example\solr,复制所有内容到E:\solrhome

 

8、打开文件夹:solr-4.10.0\example\lib\ext,复制所有jar包到tomcat的webapps\solr\WEB-INF\lib下。

 

9、运行web:http://localhost:8899/solr,将看到如下画面:

 

10、在E:\solrhome目录下,新建一个mycore文件夹。

 

11、在解压的solr-4.10.0\example\multicore目录中,复制core0文件夹到E:\solrhome\mycore中。

 

12、在E:\solrhome中新建一个文件夹:mydocs

 

13、复制解压的solr-4.10.0\example\exampledocs下的post.jar到E:\solrhome\mydocs中

 

14、复制解压的solr-4.10.0\example\multicore\exampledocs下的ipod_other.xml文件到E:\solrhome\mydocs中

 

15、在solr web page中新建core:

 

16、重启tomcat。(如何重启,忽略)

 

17、打开CMD,运行下面语句:(怎么在命令行下运行java就不说了)

java -Durl=http://localhost:8899/solr/mycore/update -Ddata=files -jar post.jar ipod_other.xml

 

18、在solr web中选择core:

 

19、查询测试:

 

20、也可以直接使用URL查询:

http://localhost:8899/solr/mycore/select?q=name%3AB*&wt=json&indent=true&_=1410949535746

返回JSON:

复制代码
{
  "responseHeader":{
    "status":0,
    "QTime":0},
  "response":{"numFound":1,"start":0,"docs":[
      {
        "id":"F8V7067-APL-KIT",
        "name":"Belkin Mobile Power Cord for iPod w/ Dock",
        "_version_":1479481822989516800}]
  }}
复制代码


原来solr可以不使用tomcat/jboss等服务器,它自身已经集成了web服务功能。搭建方法:

(这里使用的是solr-4.10.0,跳过安装java)

1、打开解压出来的solr目录,找到这个目录solr-4.10.0\example,里边有一个start.jar文件。(现在不管,之后使用)

 

2、打开web.xml文件,文件位于:solr-4.10.0\example\solr-webapp\webapp\WEB-INF

加入这段xml到<web-app/>内:

  <env-entry> 
   <env-entry-name>solr/home</env-entry-name> 
   <env-entry-value>F:\Tools\Java\solr-4.10.0\example\solr</env-entry-value> 
   <env-entry-type>java.lang.String</env-entry-type>
  </env-entry>

其中,<env-entry-value/>的值就是solr home。

事实上,这个就是tomcat/jboss下的solr web,把需要的jar包都复制到这里的lib目录下即可。比如IKAnalyzer2012FF_u1.jar / mysql-connector-java-5.1.7-bin.jar等

 

4、启动solr。回到第1步,目录:solr-4.10.0\example,运行命令:

java -jar start.jar

 

5、打开浏览器,输入地址:

http://localhost:8983/solr

结果:

 

linux下搭建solr

资源地址:http://download.csdn.net/detail/wwwyuanliang10000/4192482

软件版本:
apache-tomcat-6.0.35.tar.gz 下载地址为: http://tomcat.apache.org/download-70.cgi

apache-solr -3.2.0.tgz  下载地址为:    http://apache.etoak.com/lucene/solr/3.2.0/

1.安装tomcat:

 1.1 将apache-tomcat-6.0.35.tar.gz拷贝到路径/usr下后,

  先后执行命令:# cd /usr

 # tar  -zxvf  apache-tomcat-6.0.35.tar.gz

# mv  apache-tomcat-6.0.35   tomcat


 1.2 将apache-solr-3.2.0.tgz 拷贝到路径/usr下后

  执行命令:#tar -zxvf apache-solr-3.2.0.tgz

  进入apache-solr-3.2.0\dist目录:

   #cd  /usr/apache-solr-3.2.0/dist 

  将里面的solr.war放到安装好的tomcat/webapps下:

   #mv  apache-solr-3.2.0.war  /usr/tomcat/webapps/solr.war  

 

2. 

 2.1启动tomcat会自动解压solr.war:

  #cd /usr/tomcat/bin

  #./startup.sh

 2.2  设置context指向你的solr工程:

 在tomcat/conf/Catalina/localhost/目录下创建solr.xml文件

  #cd /usr/tomcat/conf

  #mkdir -p  Catalina/localhost

  #cd Catalina/localhost

  #vi solr.xml

 该文件内容如下:

  <Context docBase="/usr/tomcat/webapps/solr.war"     

debug="0"  crossContext="true" >

     <Environment name="solr/home" type="java.lang.String" 

        value="/usr/solr" override="true" />

</Context>

在上面value的值路径/usr下建立文件夹solr,

#cd /usr

#mkdir solr

(主要是配置文件路径 :可能会出错 can't find resource 'solrconfig.xml' 路径配置不正确)

---------------------------------------------------------------------------------------------


3. 我们需要将一些配置和index库文件放到文件夹/usr/solr下。解压的apache-solr-3.2.0\example\solr目录 下,

#cd /usr/apache-solr-3.2.0/example/solr

将里面的conf目录和solr.xml文件copy到刚才我们建的文件夹/usr/solr目录下,

#cp -rf conf /usr/solr

#cp  solr.xml  /usr/solr

重启tomcat就ok了。 



1.2 solr 和web容器 集合

  1.2.1 在工程目录中 web.xml中配置

 

[html]  view plain  copy
  1. <filter>  
  2.    <filter-name>SolrRequestFilter</filter-name>  
  3.    <filter-class>org.apache.solr.servlet.SolrDispatchFilter</filter-class>  
  4.  </filter>  
  5.   
  6.  <filter-mapping>  
  7.    <filter-name>SolrRequestFilter</filter-name>  
  8.    <url-pattern>/*</url-pattern>  
  9.  </filter-mapping>  
  10.     <env-entry>  
  11.      <env-entry-name>solr/home</env-entry-name>  
  12.      <env-entry-value>D:/Tomcat 6.0/webapps/mysolr/conf/multicore</env-entry-value>  
  13.      <env-entry-type>java.lang.String</env-entry-type>  
  14.   </env-entry>  
 1.2.2 solrj的使用,通过CommonsHttpSolrServer连接多core实例,对其添加删除索引

[java]  view plain  copy
  1. public static final String url = "http://localhost:28080/mysolr/core0";  
  2.   
  3.     static CommonsHttpSolrServer server;  
  4.   
  5.     public void init(){  
  6.   
  7.         try {  
  8.   
  9.             server = new CommonsHttpSolrServer(url);  
  10.   
  11.             server.setSoTimeout(1000);  
  12.             server.setConnectionTimeout(100);  
  13.             server.setDefaultMaxConnectionsPerHost(100);  
  14.             server.setMaxTotalConnections(100);  
  15.             server.setFollowRedirects(false);  
  16.             server.setAllowCompression(true);  
  17.             server.setMaxRetries(1);  
  18.   
  19.         } catch (MalformedURLException e) {  
  20.             // TODO Auto-generated catch block  
  21.             e.printStackTrace();  
  22.         }  
  23.   
  24.     }  

1.2.3 创建索引 和删除索引,具体需要修改D:\Tomcat 6.0\webapps\mysolr\conf\multicore\core0\conf 下面的schema.xml文件  

[html]  view plain  copy
  1. <field name="msg_title" type="textComplex" indexed="true" stored="true" />    
  2.  <field name="msg_content" type="textComplex" indexed="true" stored="true" />    
  3.  <field name="msg_all" type="textComplex" indexed="true" stored="false" multiValued="true"/>    
  4. <!-- field for the QueryParser to use when an explicit fieldname is absent -->  
  5.  <defaultSearchField>msg_all</defaultSearchField><span style="font-family: SimSun; ">  </span>  

[java]  view plain  copy
  1. @Test  
  2.     public void test01() throws SolrServerException, IOException{  
  3.   
  4.         init();  
  5.         server.deleteByQuery("*:*");//删除所有的索引  
  6.         server.commit();  
  7.   
  8.         SolrInputDocument doc = new SolrInputDocument();  
  9.   
  10.   
  11.         doc.addField("id""1");  
  12.         doc.addField("msg_title""这是我的第一个solrj程序");  
  13.         doc.addField("msg_content""我的solrj的程序究竟能不能跑的起来呢?");  
  14.   
  15.   
  16.         server.add(doc);  
  17.         server.commit();  
  18.   
  19.     }  

目录
相关文章
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux共享Windows目录
Linux共享Windows目录
|
2月前
|
缓存 NoSQL Linux
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
【Azure Redis 缓存】Windows和Linux系统本地安装Redis, 加载dump.rdb中数据以及通过AOF日志文件追加数据
|
1月前
|
存储 安全 Linux
离线Linux服务器环境搭建
【9月更文挑战第3天】在离线环境下搭建Linux服务器需按以下步骤进行:首先确定服务器用途及需求,准备安装介质与所需软件包;接着安装Linux系统并配置网络;然后设置系统基础参数,如主机名与时区;安装必要软件并配置服务;最后进行安全设置,包括关闭非必要服务、配置防火墙、强化用户认证及定期备份数据。整个过程需确保软件包的完整性和兼容性。
|
2月前
|
Unix Linux Ruby
在windows和linux上高效快捷地发布Dash应用
在windows和linux上高效快捷地发布Dash应用
|
2月前
|
Linux iOS开发 开发者
跨平台开发不再难:.NET Core如何让你的应用在Windows、Linux、macOS上自如游走?
【8月更文挑战第28天】本文提供了一份详尽的.NET跨平台开发指南,涵盖.NET Core简介、环境配置、项目结构、代码编写、依赖管理、构建与测试、部署及容器化等多个方面,帮助开发者掌握关键技术与最佳实践,充分利用.NET Core实现高效、便捷的跨平台应用开发与部署。
68 3
|
2月前
|
Ubuntu Linux 虚拟化
安装Windows Linux 子系统的方法:适用于windows 11 版本
本文提供了在Windows 11系统上安装Linux子系统(WSL)的详细步骤,包括启用子系统和虚拟化功能、从Microsoft Store安装Linux发行版、设置WSL默认版本、安装WSL2补丁,以及完成Ubuntu的首次安装设置。
139 2
|
26天前
|
Linux 开发者 Python
从Windows到Linux,Python系统调用如何让代码飞翔🚀
【9月更文挑战第10天】在编程领域,跨越不同操作系统的障碍是常见挑战。Python凭借其“编写一次,到处运行”的理念,显著简化了这一过程。通过os、subprocess、shutil等标准库模块,Python提供了统一的接口,自动处理底层差异,使代码在Windows和Linux上无缝运行。例如,`open`函数在不同系统中以相同方式操作文件,而`subprocess`模块则能一致地执行系统命令。此外,第三方库如psutil进一步增强了跨平台能力,使开发者能够轻松编写高效且易维护的代码。借助Python的强大系统调用功能,跨平台编程变得简单高效。
18 0
|
1月前
|
Linux 网络虚拟化 Windows
ccproxy windows上用的代理软件(类似linux系统上的squid)
ccproxy windows上用的代理软件(类似linux系统上的squid)
|
2月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
99 0
|
2月前
|
Linux Windows Python
最新 Windows\Linux 后台运行程序注解
本文介绍了在Windows和Linux系统后台运行程序的方法,包括Linux系统中使用nohup命令和ps命令查看进程,以及Windows系统中通过编写bat文件和使用PowerShell启动隐藏窗口的程序,确保即使退出命令行界面程序也继续在后台运行。
下一篇
无影云桌面