搭建windows的solr6服务器(二)
首先搭建solr环境,如:solr6.0学习(一)环境搭建
修改各种配置文件。
1、修改solrhome下的solr.xml文件
注解掉zookeeper搭建集群配置,我们后面会采用master-slave的形式。
至于zookeeper的形式可以阅读以下这篇文章【solrCloud集群配置指导】:http://www.aboutyun.com/thread-9432-1-1.html
- <!-- 结合zookeeper配置solrColound start -->
- <!-- 采用master-slave的方式
- <solrcloud>
- <str name="host">${host:}</str>
- <int name="hostPort">${jetty.port:8983}</int>
- <str name="hostContext">${hostContext:solr}</str>
- <bool name="genericCoreNodeNames">${genericCoreNodeNames:true}</bool>
- <int name="zkClientTimeout">${zkClientTimeout:30000}</int>
- <int name="distribUpdateSoTimeout">${distribUpdateSoTimeout:600000}</int>
- <int name="distribUpdateConnTimeout">${distribUpdateConnTimeout:60000}</int>
- </solrcloud>
- <shardHandlerFactory name="shardHandlerFactory"
- class="HttpShardHandlerFactory">
- <int name="socketTimeout">${socketTimeout:600000}</int>
- <int name="connTimeout">${connTimeout:60000}</int>
- </shardHandlerFactory>
- -->
- <!-- 结合zookeeper配置solrColound end -->
2、在sorlhome文件夹下创建【my_solr】文件夹。
3、在【my_solr】文件夹中添加core.properties配置,内容如下:
- 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中修改如下:
- <codecFactory class="solr.SchemaCodecFactory"/>
- <!-- 解除managed-schema管理模式 start -->
- <schemaFactory class="ClassicIndexSchemaFactory"/>
- <!-- 解除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文件,添加
- <field name="content_test" type="text_general" indexed="true" stored="true" multiValued="true"/>
field的属性和配置,可以google一下schema.xml 说明很多,用法也很多,这里就不赘述。
2、添加索引数据,代码如下:
编写过程中可能会报错,最简便的方法是将web-inf下lib里所有jar包添加进来,然后运行,出什么错,就添加什么jar包即可。
- package com.solr.insertData;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.solr.client.solrj.SolrClient;
- import org.apache.solr.client.solrj.SolrServerException;
- import org.apache.solr.client.solrj.impl.HttpSolrClient;
- import org.apache.solr.common.SolrInputDocument;
- public class InsertProgarm {
- //solr 服务器地址
- public static final String solrServerUrl = "http://localhost:8080/solr";
- //solrhome下的core
- public static final String solrCroeHome = "my_solr";
- //待索引、查询字段
- public static String[] docs = {"Solr是一个独立的企业级搜索应用服务器",
- "它对外提供类似于Web-service的API接口",
- "用户可以通过http请求",
- "向搜索引擎服务器提交一定格式的XML文件生成索引",
- "也可以通过Http Get操作提出查找请求",
- "并得到XML格式的返回结果"};
- public static void main(String[] args) {
- SolrClient client = getSolrClient();
- int i=0;
- List<SolrInputDocument> solrDocs = new ArrayList<SolrInputDocument>();
- for (String content : docs) {
- SolrInputDocument doc = new SolrInputDocument();
- doc.addField("id", i++);
- doc.addField("content_test", content);
- solrDocs.add(doc);
- }
- try {
- client.add(solrDocs);
- client.commit();
- } catch (SolrServerException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- }
- public static SolrClient getSolrClient(){
- return new HttpSolrClient(solrServerUrl+"/"+solrCroeHome);
- }
- }
3、运行成功后,会在【solrhome/my_solr】文件夹下创建一个【data】的文件夹,这个文件夹中的内容就是我们的solr索引。
其实其对于的是solconfig.xml中如下配置:
- <!-- Data Directory
- Used to specify an alternate directory to hold all index data
- other than the default ./data under the Solr home. If
- replication is in use, this should match the replication
- configuration.
- -->
- <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服务器(二)的更多相关文章
- 搭建windows的solr6服务器
准备工作: 目前最新版本6.0.下载solr 6.0:Solr6.0下载 JDK8 下载jdk1.8:jdk1.8[solr6.0是基于jdk8开发的] tomcat8.0 下载:tomcat8 ## ...
- Git-gitblit-Tortoisegit 搭建Windows Git本地服务器
1.Gitblit安装 1.1.Gitblit简介 Git在版本控制领域可谓是深受程序员喜爱.对于开源的项目,可以免费托管到GitHub上面,相当的方便.但是私有项目托管到GitHub会收取相当昂贵的 ...
- office web apps 部署-搭建office web apps服务器
二.搭建office web apps服务器 相关文件可以去焰尾迭分享的百度网盘下载,下载地址:http://pan.baidu.com/s/1o6tCo8y#path=%252Foffice%252 ...
- Windows下Git服务器搭建[转]
Windows下Git服务器搭建 作为对前两天Git服务器搭建的一个整理,我想分别从服务端和客户端两个角度来记录下整个搭建过程,为了达到目标,我们需要哪些操作. (一)服务端软件和账号的安装配置 ...
- 搭建Windows SVN服务器及TortoiseSVN使用帮助和下载
搭建Windows SVN服务器: 用的SVN服务器通常为外部,例如Google Code的服务器,不过,做为一个程序开发人员,就算自己一个人写程序,也应该有一个SVN版本控制系统,以便对开发代码进行 ...
- 本地windows下搭建git的本地服务器
本地windows下搭建git的本地服务器 准备工作: 本地安装java环境,配置环境变量(略) 下载gitblit文件,百度一大堆 开始第一步: 减压gitblit压缩包到某个目录下,比如我在:H: ...
- Windows平台下搭建自己的Git服务器
该文章转自:http://www.codeceo.com/article/windows-git-server.html Gitblit 是一个纯 Java 库用来管理.查看和处理 Git 资料库,相 ...
- Windows下SVN服务器搭建方法整理(apache)
http://skydream.iteye.com/blog/437959 http://www.cnblogs.com/liuke209/archive/2009/09/23/1572858.htm ...
- 使用Gitblit 搭建Windows Git服务器
使用Gitblit 搭建Windows Git服务器 整理使用Gitblit搭建Git服务器的步骤. 目录 使用Gitblit 搭建Windows Git服务器 目录 下载安装 配置 运行 客户端运行 ...
随机推荐
- PHP开发模式之代理技术
在实际开发中,我们经常要调用第三方的类库如SOAP服务等.使用这些第三方 组件并不难,最麻烦的莫过于调用了,一般的调试手段最方便的莫过于记日志了. 示例: 假如有以下第三方类库. // filenam ...
- Appium客户端
Appium版本:1.5.3 Xcode有两个版本:Xcode8.1 Xcode7.2.1 iOS10以下只能用Xcode7.2.1 iOS10及以上可以用Xcode8.1 1.Appium客 ...
- Silverlight C1.Silverlight.FlexGrid 表格动态列
很多时候,我们对于表格展示的数据,需要根据条件不停的变化,这就需要表格列能动态生成,即没有Model的概念(万物始于无形).先上主要代码: 一.根据参数绑定列定义 二.根据数据动态创建数据对象,并添加 ...
- 二维码识别 android app
TextView类用于展示文本信息 ImageView展示 id:button1(用来显示“扫描二维码”) 布局:fill_parent使布满屏幕(高级版本用match_parent) wrap_co ...
- JavaScript-插入concat,splice,截取slice
拼接和截取:concat 拼接: var newArr=arr.concat(值1,值2,值3,值4,.....); 将值1值2,以及arr2中每个元素一次拼接到arr1结尾,返回新数组 强调: 1. ...
- GitLab的Gravatar头像服务不可用
由于www.gravatar.com在国内不可正常使用,导致我们搭建的GitLab在网页上会阻塞大量时间,并最终无法显示头像.我们可以将其替换成"多说"的头像服务.我使用的是CE ...
- Webpack使用教程二
Webpack提供了很多的命令选项来帮助用户构建应用,如果只是通过命令行来使用这些选项,会显得不方便.为了更好的使用Webpack提供的各种命令选项,我们可以创建一个webpack.config.js ...
- django rest_framework--入门教程
题设.如果官网DEMO能够正常跑起来请继续,如果不能请参考上一篇 1.新建MODEL 在数据库里添加相应的数据,可以使用命令 manage.py syncdb 这时候会建立对应的表 2.新建序列化方法 ...
- Python爬虫 -- 抓取电影天堂8分以上电影
看了几天的python语法,还是应该写个东西练练手.刚好假期里面看电影,找不到很好的影片,于是有个想法,何不搞个爬虫把电影天堂里面8分以上的电影爬出来.做完花了两三个小时,撸了这么一个程序.反正蛮简单 ...
- Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter
Kali Linux Web 渗透测试— 第二十课-metasploit.meterpreter 原文链接:http://www.xuanhun521.com/Blog/7fc11b7a-b6cb-4 ...