一、基础配置
官网下载: http://lucene.apache.org/solr/
我下载下载版本是apache-solr-3.6.2
第一步:复制apache-solr-3.6.2\example\solr 文件夹到Tomcat7的根目录
第二步:复制apache-solr-3.6.2\example\webapps\solr.war 到Tomcat7的webapps目录下
第三步:在apache-tomcat-7.0.39\conf\Catalina\localhost目录下新建solr.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:/install/sorl20120423/apache-tomcat-7.0.39/webapps/solr" debug="0" crossContext="true" >
<Environment name="solr/home" type="java.lang.String" value="D:/install/sorl20120423/apache-tomcat-7.0.39/solr" override="true" />
<!--<Environment name="solr/home" type="java.lang.String" value="D:/tmp/lringsolr" override="true" /> -->
</Context>
第四步:启动tomcat 访问:http://localhost:6666/solr/ 访问到就安装成功了,6666是我tomcat的端口。
二、多核配置
多核就是多个服务 ,比如搜各个分类每个分类一个索引
1、进入apache-solr-3.6.2\example\multicore目录拷贝core0、core1(名称可改任意多个不限)到apache-tomcat-7.0.39\solr\目录下
2、配置apache-tomcat-7.0.39\solr\solr.xml 新增如下代码
<core name="core0" instanceDir="core0" />
<core name="core1" instanceDir="core1" />
配置完成访问多核只需在原有访问路径基础上加core名称即可。
三、外面mysql数据导入到索引
1、在apache-tomcat-7.0.39\solr\conf 目录新建db-data-config.xml 内容如下
<dataConfig>
<dataSource type="JdbcDataSource"
driver="com.mysql.jdbc.Driver"
url="jdbc:mysql://地址:3306/库名"
user="用户名"
password="密码"/>
<document>
<entity name="id"
query="select id,description from d_city">
</entity>
<field column="id" name="solr_id"/>
<field column="description" name="solr_description"/>
</document>
</dataConfig>
2、配置apache-tomcat-7.0.39\solr\conf目录下的solrconfig.xml加入如下内容:
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
3、将apache-solr-3.6.2\example\lib的jar包导入apache-tomcat-7.0.39\webapps\solr\WEB-INF\lib下 。
访问:http://localhost:6666/solr/dataimport?command=full-import 即可建立索引
四、索引访问代码:建立索引
import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.impl.XMLResponseParser; import org.apache.solr.common.SolrInputDocument; public class InitDocumnet { static { long begin=System.currentTimeMillis() ; String url = "http://localhost:6666/solr/" ; try{ HttpSolrServer server = new HttpSolrServer( url ); server.setMaxRetries(1); // defaults to 0. > 1 not recommended. server.setConnectionTimeout(5000); // 5 seconds to establish TCP server.setParser(new XMLResponseParser()); // binary parser is used by default server.setSoTimeout(1000); // socket read timeout server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); // defaults to false server.setAllowCompression(true); for(int i=1;i<10;i++){ SolrInputDocument doc1 = new SolrInputDocument(); doc1.addField( "id",i+"1"); doc1.addField( "name", "00网传一份北京大学权威认定的中国最顶级中学名录,在网上被热炒,不少网友表示自己的母校位列其中。在这份名录中,上海上榜4所学校,分别为上海中学,华师大二附中,复旦附中,七宝中学。你的母校上榜了吗?图via清华南都"+i); server.add(doc1) ; } server.commit() ; System.out.println(System.currentTimeMillis()-begin) ; }catch(Exception ex){ ex.printStackTrace() ; } } static public void main(String[] args){ long begin=System.currentTimeMillis() ; new InitDocumnet() ; System.out.println(System.currentTimeMillis()-begin) ; }
删除索引:
import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.impl.XMLResponseParser; import org.apache.solr.common.SolrInputDocument; public class DelDocumnet { static { long begin=System.currentTimeMillis() ; String url = "http://localhost:6666/solr/" ; try{ HttpSolrServer server = new HttpSolrServer( url ); server.setMaxRetries(1); // defaults to 0. > 1 not recommended. server.setConnectionTimeout(5000); // 5 seconds to establish TCP server.setParser(new XMLResponseParser()); // binary parser is used by default server.setSoTimeout(1000); // socket read timeout server.setDefaultMaxConnectionsPerHost(100); server.setMaxTotalConnections(100); server.setFollowRedirects(false); // defaults to false server.setAllowCompression(true); server.deleteByQuery("*:*"); server.commit() ; System.out.println(System.currentTimeMillis()-begin) ; }catch(Exception ex){ ex.printStackTrace() ; } } static public void main(String[] args){ long begin=System.currentTimeMillis() ; System.out.println(System.currentTimeMillis()-begin) ; } }
查询索引:
import java.util.Iterator; import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client.solrj.SolrServer; import org.apache.solr.client.solrj.SolrServerException; import org.apache.solr.client.solrj.impl.HttpSolrServer; import org.apache.solr.client.solrj.response.QueryResponse; import org.apache.solr.common.SolrDocument; import org.apache.solr.common.SolrDocumentList; public class SearchTest { public static void main(String[] args) { // 实例化SolrServer,以获取与solrServer的通信 String url = "http://localhost:6666/solr/" ; SolrServer server = new HttpSolrServer(url); // 创建查询参数以及设定的查询参数 SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.setRows(2000); // query.addHighlightField("webTitle");// 高亮字段 // query.addHighlightField("webContent");// 高亮字段 // query.setFacet(true) // .setFacetMinCount(12) // .setFacetLimit(5);//段 // query.setQuery("e"); // query.setQuery("id:长江2"); // query.setQuery("1"); // 查询并获取相应的结果! QueryResponse response = null; try { response = server.query(query); SolrDocumentList docs = response.getResults(); //Get the results // Iterator<SolrDocument> itDocs = response.getResults().iterator(); Iterator<SolrDocument> itDocs = docs.iterator(); if (response.getResults().getNumFound() > 10) { System.out.println("显示前10项相关结果"); } if (!itDocs.hasNext()) { //如果没有任何返回结果 System.out.println("no any result! "); } while (itDocs.hasNext()) { SolrDocument resultDoc = itDocs.next(); String content = (String) resultDoc.getFieldValue("description"); String id = (String) resultDoc.getFieldValue("id"); System.out.println("Content: " + content + " Id: " + id); } System.out.println("文档个数:"+ docs.getNumFound()); System.out.println("查询时间:" + response.getQTime()); } catch (SolrServerException e) { System.err.println(e.getMessage()); e.printStackTrace(); } catch (Exception e) { System.err.println(e.getMessage()); e.printStackTrace(); } finally { } } }
相关推荐
Solr(Cloudera)使用手册
lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用lucene,solr的使用
solr使用和原理 简单明了的介绍了solr的使用和原理,及其部署方式,适合初学者第一次部署
solr的安装使用步骤
solr安装和使用
Solr 3.*pdf使用手册,欢迎下载
Solr的基础知识,笔者翻阅了很多网上的资料,自认为比较全面,涉及到Solr的安装使用与SolrJ的开发。
solr.warsolr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包solr.war包...
solr定时索引使用到的定时调度器jar包, 可使用于solr7.x版本
centos7 环境 安装docker 并在docker 中部署solr 并使用
solr 使用官方指南,solr 使用官方指南solr 使用官方指南solr 使用官方指南
用于solr6.5的IK分词包,内含使用说明及配置文件
简单的描绘了使用easynet开发solr客户端,包括添加,修改,删除,查询功能。
solr中文解析器以及使用文档,配合blog使用
Solr基础使用
1.2.1 Solr使用Lucene并且进行了扩展 4 1.2.2 Schema(模式) 5 1.2.3 查询 5 1.2.4 核心 5 1.2.5 缓存 5 1.2.6 复制 6 1.2.7 管理接口 6 1.3 Solr服务原理 6 1.3.1 索引 6 1.3.2 搜索 7 1.4 源码结构 8 1.4.1 目录...
solr
solr 安装教程
如何使用solr搭建服务器
solr