您的位置:首页 > 其它

solr安装部署、solr测试创建core、用solrj 访问solr(索引和搜索)

2014-06-17 18:17 691 查看
一、安装solr4.8:

1、把apache-solr-4.8.1\example\webapps下的solr.war文件拷贝到Tomcat下的Tomcat7.0\webapps目录下,tomcat启动时,solr.war会自动解压生成solr目录。

2、检查解压缩后的solr\WEB-INF\lib下的jar包是否全,最好去apache-solr-4.8.1下的某些jar复制过来,不然启动tomcat有无厘头错误。

3、配置solrhome(索引数据、配置信息存储的地方)路径信息:将Tomcat7.0\webapps\solr\WEB-INF\web.xml中的如下代码取消注释,修改蓝色字体的值(我的是E:/SolrHome):

<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>

 关于solr/home的设置,其实有三种方法:

(1)、在solr的web.xml中设置

(2)、在tomcat启动时附带参数

(3)、修改D:/Tomcat7.0/bin目录下的catalina.bat文件,里面加入tomcat的启动参数:set
JAVA_OPTS=-Dsolr.solr.home=E:/SolrHome

4、将apache-solr-4.8.1\example\solr下的所有内容(有collection1)拷贝到E:/SolrHome路径下,如下图:

或拷贝apache-solr-4.8.1\example\multicore下所有内容包含(core0和core1)到E:/SolrHome路径。

【仅仅是为了在已配置的collection1或core0或core1上测试用,进一步学习还需要自己修改schema.xml和solrconfig.xml文件来配置】



--------solr 部署结束,启动tomcat,访问浏览器地址[b]http://localhost:8080/solr/----测试配置是否成功!!------[/b]

 当然core可以模仿目录结构手动创建),图中solrtest是我手动创建的core。

看看手动创建core步骤:

步骤1、第一步是建立solrtest文件夹,在solrtest下创建1个conf文件夹(conf文件夹下要有solrconfig.xml和schema.xml两个文件)和1个core.properties文),其中core.properties的内容如下:

name=solrtest

config=solrconfig.xml  

schema=schema.xml  

dataDir=data  

步骤2、每次添加一个core,都需要在solr.xml里面注册:

<solr persistent="false">     

    <cores adminPath="/admin/cores" host="${host:}" hostPort="${jetty.port:}">     

              <core name="core0" instanceDir="core0" />      

             <core name="core1" instanceDir="core1" />     

               <core name="solrtest" instanceDir="solrtest"/>   

       </cores>   

</solr>

name="",是库的名字,instanceDir="",是目录,每个目录下包含两个文件夹conf和data,data下有两个文件夹index和tlog,index是存放生成的索引文件,tlog存放log,conf下是必要的配置文件schema.xml和solrconfig.xml,可以参考官方或者core里面的配置文件。
三、通过solrj(java程序)对solr服务器进行访问:

1、添加索引数据:

public  static void addIndex()throws IOException, SolrServerException{
       HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/collection1");
 
       for (int i = 0; i < 1000; ++i) {  
           SolrInputDocument doc = new SolrInputDocument();  
           doc.addField("name", "student");  
           doc.addField("id", 2014+ i);  
           doc.addField("age", i/100+5);  
           doc.addField("price", 1000+i*2);  
           server.add(doc);  
           if (i % 100 == 0)  
               server.commit(); // periodically flush  
       
}  
       server.commit();  
}

2、进行查询:

public static void main(String[] args) throws MalformedURLException, SolrServerException {  

        HttpSolrServer solr = new HttpSolrServer("http://localhost:8080/solr/solrtest");  

        ModifiableSolrParams params = new ModifiableSolrParams();  

        params.set("q", "name:student");  //name 是field的key, student是field的value

        params.set("start", "0");  

   

        QueryResponse response = solr.query(params);  

        SolrDocumentList results = response.getResults(); 

        System.out.println(results.size());

        for (int i = 0; i < results.size(); ++i) {  

            System.out.println(results.get(i));  

        }  

    }  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  solr solrj