蔷薇525 发表于 2015-7-18 10:30:18

Solr配置与简单Demo[转]

Solr配置与简单Demo


  简介:
  solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。它的官方网址在http://lucene.apache.org/solr/。solr需要运行在一个servlet 容器里,例如tomcat。solr在lucene的上层提供了一个基于HTTP/XML的Web Services,我们的应用需要通过这个服务与solr进行交互。
  
  
  前提,下载tomcat。省略。
  第一步:下载Solr, http://www.apache.org/dyn/closer.cgi/lucene/solr/
  我下载的是3.5版本,把它解压到E盘。E:/apache-solr-3.5.0
  
  第二步:修改conf\server.xml,把8080端口所在的那一行修改如下:
  




  也有用下面这个的。




  其实就是增加了URIEncoding="UTF-8"这一配置。推荐用第一种,这两个区别暂时不知。
  
  第三步:配置Solr
  还是在conf目录下,增加 Catalina\localhost\solr.xml 文件,如果conf文件夹下没有Catalina,新建它。
  solr.xml内容:





  
第四步:启动Tomcat。输入http://localhost:8080/solr/ 出现欢迎界面,表示成功。
  
  第五步:简单Java Api 操作
  参考 http://www.iteye.com/topic/315330 写的很详细了。
  一个简单的写入,读出数据的完整代码如下:





package com.weishangye.test.solr;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
public class SolrTest1 {
    public static void main(String[] args) throws Exception {
      String url = "http://localhost:8080/solr";
      SolrServer server = new CommonsHttpSolrServer(url);
      server.deleteByQuery( "*:*" );// delete everything!
      SolrInputDocument doc1 = new SolrInputDocument();
      doc1.addField( "id", "id1", 1.0f );
      doc1.addField( "name", "doc1", 1.0f );
      doc1.addField( "price", 10 );
      SolrInputDocument doc2 = new SolrInputDocument();
      doc2.addField( "id", "id2", 1.0f );
      doc2.addField( "name", "冰羽", 1.0f );
      doc2.addField( "price", 20 );
      Collection docs = newArrayList();
      docs.add( doc1 );
      docs.add( doc2 );
      server.add( docs );
      server.commit();
      SolrQuery query = new SolrQuery();
      query.setQuery( "*:*" );
      query.addSortField( "price", SolrQuery.ORDER.desc );
      QueryResponse rsp = server.query( query );
      SolrDocumentList docsList = rsp.getResults();
      for(Iterator doc =docsList.iterator();doc.hasNext();){
            SolrDocument d = doc.next();
            System.out.print(d.getFieldValue("id")+"->");
            System.out.println(d.getFieldValue("name"));
      }
    }
}

  
  资源:
  http://www.ibm.com/search/csass/search/?sn=dw&lang=zh&cc=CN&en=utf&hpp=20&dws=cndw&lo=zh&q=solr&Search=%E6%90%9C%E7%B4%A2IBM社区
  http://www.oschina.net/question/12_9398 利用开源的 Apache Solr 搜索引擎构建 RESTful 基础存储服务
  http://blog.chenlb.com/tag/solr






分类: JAVA
页: [1]
查看完整版本: Solr配置与简单Demo[转]