首先搭建solr环境,如:solr6.0学习(一)环境搭建

修改各种配置文件。

1、修改solrhome下的solr.xml文件

注解掉zookeeper搭建集群配置,我们后面会采用master-slave的形式。

至于zookeeper的形式可以阅读以下这篇文章【solrCloud集群配置指导】:http://www.aboutyun.com/thread-9432-1-1.html

  1. <!-- 结合zookeeper配置solrColound start -->
  2. <!-- 采用master-slave的方式
  3. <solrcloud>
  4. <str name="host">${host:}</str>
  5. <int name="hostPort">${jetty.port:8983}</int>
  6. <str name="hostContext">${hostContext:solr}</str>
  7. <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
  8. <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
  9. <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
  10. <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
  11. </solrcloud>
  12. <shardHandlerFactory name="shardHandlerFactory"
  13. class="HttpShardHandlerFactory">
  14. <int name="socketTimeout">${socketTimeout:600000}</int>
  15. <int name="connTimeout">${connTimeout:60000}</int>
  16. </shardHandlerFactory>
  17. -->
  18. <!-- 结合zookeeper配置solrColound end -->

2、在sorlhome文件夹下创建【my_solr】文件夹。

3、在【my_solr】文件夹中添加core.properties配置,内容如下:

  1. name=my_solr

这个name的值实际上就core的名称,可以任意命名,为了保证统一和方便阅读,个人觉得最好和文件夹名称一致。

4、将【solr-6.0.0\example\example-DIH\solr\solr】下的conf文件夹拷贝到【my_solr】文件夹下。包含如下文件:

【conf】中文件目录如下:

5、solr-5.0 以上默认对schema的管理是使用managed-schema,不能手动修改,需要使用Schema Restful的API操作。

如果要想手动修改配置,把【conf】文件夹中managed-schema拷贝一份修改为schema.xml,在solrconfig.xml中修改如下:

  1. <codecFactory class="solr.SchemaCodecFactory"/>
  2. <!-- 解除managed-schema管理模式 start -->
  3. <schemaFactory class="ClassicIndexSchemaFactory"/>
  4. <!-- 解除managed-schema管理模式 end -->

重启tomcat8,可能会报错,查看tomcat日志发现,比喻:

缺少DataImportHandler的jar等,那么将【solr-6.0.0\dist】下的solr-dataimporthandler-6.0.0.jar和solr-dataimporthandler-extras-6.0.0.jar

拷贝到【apache-tomcat-8.0.33\webapps\solr\WEB-INF\lib】下。

重启tomcat8。如果缺少其他jar包,根据报错信息添加即可。没有异常,

访问:【http://localhost:8080/solr/index.html#/】

会出现如下界面:

选择my_solr,会出现如下界面:

至此其实由于没有索引数据,其实solr是个空壳,那么下面写一个应用程序插入solr索引数据。

参考:http://www.open-open.com/lib/view/open1452062296995.html

1、首先需要修改schema.xml文件,添加

  1. <field name="content_test" type="text_general" indexed="true" stored="true" multiValued="true"/>

field的属性和配置,可以google一下schema.xml 说明很多,用法也很多,这里就不赘述。

2、添加索引数据,代码如下:

编写过程中可能会报错,最简便的方法是将web-inf下lib里所有jar包添加进来,然后运行,出什么错,就添加什么jar包即可。

  1. package com.solr.insertData;
  2. import java.io.IOException;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. import org.apache.solr.client.solrj.SolrClient;
  6. import org.apache.solr.client.solrj.SolrServerException;
  7. import org.apache.solr.client.solrj.impl.HttpSolrClient;
  8. import org.apache.solr.common.SolrInputDocument;
  9. public class InsertProgarm {
  10. //solr 服务器地址
  11. public static final String solrServerUrl = "http://localhost:8080/solr";
  12. //solrhome下的core
  13. public static final String solrCroeHome = "my_solr";
  14. //待索引、查询字段
  15. public static String[] docs = {"Solr是一个独立的企业级搜索应用服务器",
  16. "它对外提供类似于Web-service的API接口",
  17. "用户可以通过http请求",
  18. "向搜索引擎服务器提交一定格式的XML文件生成索引",
  19. "也可以通过Http Get操作提出查找请求",
  20. "并得到XML格式的返回结果"};
  21. public static void main(String[] args) {
  22. SolrClient client = getSolrClient();
  23. int i=0;
  24. List<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
  25. for (String content : docs) {
  26. SolrInputDocument doc = new SolrInputDocument();
  27. doc.addField("id", i++);
  28. doc.addField("content_test", content);
  29. solrDocs.add(doc);
  30. }
  31. try {
  32. client.add(solrDocs);
  33. client.commit();
  34. } catch (SolrServerException e) {
  35. // TODO Auto-generated catch block
  36. e.printStackTrace();
  37. } catch (IOException e) {
  38. // TODO Auto-generated catch block
  39. e.printStackTrace();
  40. }
  41. }
  42. public static SolrClient getSolrClient(){
  43. return new HttpSolrClient(solrServerUrl+"/"+solrCroeHome);
  44. }
  45. }

3、运行成功后,会在【solrhome/my_solr】文件夹下创建一个【data】的文件夹,这个文件夹中的内容就是我们的solr索引。

其实其对于的是solconfig.xml中如下配置:

  1. <!-- Data Directory
  2. Used to specify an alternate directory to hold all index data
  3. other than the default ./data under the Solr home.  If
  4. replication is in use, this should match the replication
  5. configuration.
  6. -->
  7. <dataDir>${solr.data.dir:}</dataDir>

4、访问http://localhost:8080/solr/index.html选择【my_solr】core,选择query得到如下界面:

红色区域是针对不同的ui,因为浏览器版本问题,我这里面选择使用【Use original
UI
】,会跳转到http://localhost:8080/solr/old.html#/

选择【my_solr】core,选择query,点击【Execute Query】查询结果如下:

其实其访问的url实际为:http://localhost:8080/solr/my_solr/select?q=*%3A*&wt=json&indent=true

至于q、wt、indent等参数,代表的含义,可以搜索solr查询语法。

那么至此,我们就将solr插件完毕,结合了core和创建索引、查询程序,完成!

搭建windows的solr6服务器(二)的更多相关文章

  1. 搭建windows的solr6服务器

    准备工作: 目前最新版本6.0.下载solr 6.0:Solr6.0下载 JDK8 下载jdk1.8:jdk1.8[solr6.0是基于jdk8开发的] tomcat8.0 下载:tomcat8 ## ...

  2. Git-gitblit-Tortoisegit 搭建Windows Git本地服务器

    1.Gitblit安装 1.1.Gitblit简介 Git在版本控制领域可谓是深受程序员喜爱.对于开源的项目,可以免费托管到GitHub上面,相当的方便.但是私有项目托管到GitHub会收取相当昂贵的 ...

  3. office web apps 部署-搭建office web apps服务器

    二.搭建office web apps服务器 相关文件可以去焰尾迭分享的百度网盘下载,下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%252 ...

  4. Windows下Git服务器搭建[转]

    Windows下Git服务器搭建   作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...

  5. 搭建Windows SVN服务器及TortoiseSVN使用帮助和下载

    搭建Windows SVN服务器: 用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行 ...

  6. 本地windows下搭建git的本地服务器

    本地windows下搭建git的本地服务器 准备工作: 本地安装java环境,配置环境变量(略) 下载gitblit文件,百度一大堆 开始第一步: 减压gitblit压缩包到某个目录下,比如我在:H: ...

  7. Windows平台下搭建自己的Git服务器

    该文章转自:http://www.codeceo.com/article/windows-git-server.html Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库,相 ...

  8. Windows下SVN服务器搭建方法整理(apache)

    http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...

  9. 使用Gitblit 搭建Windows Git服务器

    使用Gitblit 搭建Windows Git服务器 整理使用Gitblit搭建Git服务器的步骤. 目录 使用Gitblit 搭建Windows Git服务器 目录 下载安装 配置 运行 客户端运行 ...

随机推荐

  1. 第四章 Leader选举算法分析

    Leader选举 学习leader选举算法,主要是从选举概述,算法分析与源码分析(后续章节写)三个方面进行. Leader选举概述 服务器启动时期的Leader选举 选举的隐式条件便是ZooKeepe ...

  2. 使用 IntraWeb (43) - 测试读取 SqLite (二)

    一般情况下, 数据源相关控件应该有数据模块中统一管理, 这也方便其他窗体调用; UserSessionUnit 就是一个现成的数据模块. 现在把数据源相关控件放在 UserSessionUnit 的窗 ...

  3. Ubuntu系统监控cpu memery 磁盘Io次数 IO速率 网卡 运行时间等信息的采集

    实验室最近在做的项目要做ubuntu系统监控,要获得系统的一些信息并返回给web服务器. web服务器与ubuntu主机的通信我写的程序用的是socket,至于为什么不用java程序ssh到对应的主机 ...

  4. Android(Xamarin)之旅(二)

    新的一年,新的开始,2016,我要做什么,大家要做什么,啦啦啦. OK,上篇已经介绍了几个简单的控件,这次,我们继续说说控件.但是可能有人认为这有什么难的,问题不在这里,而在于,如果你注意了每一个空间 ...

  5. Android之Fragment学习总结(1)

    对于Fragment的学习: 近日初步学习了Fragment这以特殊的组件,其依托与一个Activity,与Activity的生命周期息息相关,为其设置的视图只有当其关联到一个Activity才会起效 ...

  6. Okhttp https

    1. 绕过CA证书,不建议使用 private void ingoreCA() throws NoSuchAlgorithmException, KeyManagementException { SS ...

  7. onSaveInstanceState & onRestoreInstanceState

    一.onSaveInstanceState Called to retrieve per-instance state from an activity before being killed so ...

  8. 自然数的K次幂的数列求和

        ------------------------------------------------------------------------------- 转载请注明出处 博客园 刺猬的温 ...

  9. 我们为什麽需要有经验的DBA

    我们为什麽需要有经验的DBA 自从我进来园子之后,发觉虽然我们分享了很多质量很好的文章给大家,但是大家不一定能够消化得了这些文章 理解这些文章还是需要有一定环境,有环境你解决了,但是可能还有别的捷径减 ...

  10. SQLSERVER2014 2014年4月1日发布

    SQLSERVER2014 2014年4月1日发布 原文地址: http://blogs.technet.com/b/microsoft_blog/archive/2014/03/18/sql-ser ...