修改各类配置文件。html
一、修改solrhome下的solr.xml文件java
注解掉zookeeper搭建集群配置,咱们后面会采用master-slave的形式。web
至于zookeeper的形式能够阅读如下这篇文章【solrCloud集群配置指导】:http://www.aboutyun.com/thread-9432-1-1.htmlapache
- <!-- 采用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>
- -->
二、在sorlhome文件夹下建立【my_solr】文件夹。json
三、在【my_solr】文件夹中添加core.properties配置,内容以下:浏览器
这个name的值实际上就core的名称,能够任意命名,为了保证统一和方便阅读,我的以为最好和文件夹名称一致。tomcat
四、将【solr-6.2.1\example\example-DIH\solr\solr】下的conf文件夹拷贝到【my_solr】文件夹下。包含以下文件:服务器

【conf】中文件目录以下:app

五、solr-5.0 以上默认对schema的管理是使用managed-schema,不能手动修改,须要使用Schema Restful的API操做。webapp
若是要想手动修改配置,把【conf】文件夹中managed-schema拷贝一份修改成schema.xml,在solrconfig.xml中修改以下:
- <codecFactory class="solr.SchemaCodecFactory"/>
-
- <schemaFactory class="ClassicIndexSchemaFactory"/>
-
重启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
一、首先须要修改schema.xml文件,添加
- <field name="content_test" type="text_general" indexed="true" stored="true" multiValued="true"/>
field的属性和配置,能够google一下schema.xml 说明不少,用法也不少,这里就不赘述。
二、添加索引数据,代码以下:
编写过程当中可能会报错,最简便的方法是将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 {
-
- public static final String solrServerUrl = "http://localhost:8080/solr";
-
- 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) {
-
- e.printStackTrace();
- } catch (IOException e) {
-
- e.printStackTrace();
- }
-
- }
- public static SolrClient getSolrClient(){
- return new HttpSolrClient(solrServerUrl+"/"+solrCroeHome);
- }
-
- }
三、运行成功后,会在【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>
四、访问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查询语法。