Solr开发指南
solr使用流程

solr使用流程Solr使用流程一、概述Solr是一个开源的企业级搜索平台,基于Apache Lucene构建。
它提供了强大的全文搜索、分布式搜索、面向文档的搜索和高级搜索功能。
Solr的使用流程可以分为以下几个步骤:准备环境、创建索引、搜索数据。
二、准备环境在开始使用Solr之前,首先需要准备好运行环境。
Solr可以运行在各种操作系统上,包括Windows、Linux和Mac OS。
在安装Solr 之前,确保已经安装了Java Development Kit(JDK),并配置好了JAVA_HOME环境变量。
然后,从Solr官网下载最新版本的Solr,并解压到本地目录中。
三、创建索引1. 定义Schema在开始创建索引之前,需要定义Schema。
Schema是Solr中的模式文件,用于定义索引字段的类型、分析器和其他属性。
可以使用任何文本编辑器打开schema.xml文件,并根据需求进行修改。
常见的字段类型包括文本类型、日期类型、布尔类型等。
2. 导入数据在定义好Schema之后,需要将数据导入到Solr中。
Solr支持多种数据导入方式,包括手动导入和自动导入。
手动导入可通过提交XML或JSON格式的数据来实现,而自动导入则可以通过配置数据源和定时任务来实现。
3. 创建索引数据导入完成后,即可创建索引。
在Solr中,索引是由一系列的文档组成,每个文档都包含多个字段。
可以使用Solr提供的API来创建索引,也可以使用Solr的客户端工具来操作。
创建索引的过程包括向Solr提交文档、更新索引和删除索引等操作。
四、搜索数据创建索引完成后,即可开始搜索数据。
Solr提供了丰富的搜索功能,可以通过关键字、范围、过滤条件等进行高级搜索。
可以使用Solr 提供的查询语法来构建查询语句,并通过HTTP请求将查询发送给Solr服务器。
Solr会返回与查询条件匹配的文档列表。
1. 构建查询语句在构建查询语句时,需要考虑搜索的字段、搜索的关键字和搜索的条件。
ApacheSolr入门教程(初学者之旅)

ApacheSolr⼊门教程(初学者之旅)Apache Solr⼊门教程(初学者之旅)写在前⾯:本⽂涉及solr⼊门的各⽅⾯,建议边思考边实践,相信能帮助你对solr有个清晰全⾯的了解并能简单实⽤。
在Apache Solr初学者教程的这个例⼦中,我们将讨论有关如何安装最新版本的Apache Solr,并告诉你如何配置它。
此外,我们将告诉你如何进⾏使⽤solr的样本数据⽂件索引。
Apache Solr⽀持不同格式,包括各种数据库,PDF⽂件,XML⽂件,CSV⽂件等等。
在这个例⼦中,我们将研究如何从⼀个CSV⽂件索引数据。
⾸选这个例⼦的环境是Windows。
开始Solr安装之前,确保你已经安装了JDK和正确配置JAVA_HOME。
1.为什么选择Apache SolrApache Solr是⼀个功能强⼤的搜索服务器,它⽀持REST风格API。
Solr是基于Lucene的,Lucene ⽀持强⼤的匹配能⼒,如短语,通配符,连接,分组和更多不同的数据类型。
它使⽤ Apache Zookeeper特别针对⾼流量进⾏优化。
Apache Solr提供各式各样的功能,我们列出了部分最主要的功能。
1. 先进的全⽂搜索功能。
2. XML,JSON和HTTP - 基于开放接⼝标准。
3. ⾼度可扩展和容错。
4. 同时⽀持模式和⽆模式配置。
5. 分页搜索和过滤。
6. ⽀持像英语,德语,中国,⽇本,法国和许多主要语⾔7. 丰富的⽂档分析。
2.安装Apache Solr要⾸先让从以下位置下载最新版本的Apache Solr:在撰写本⽂时,可⽤的稳定版本是5.0.0。
Apache Solr经历了从4.XX到5.0.0各种变化了,所以如果你有不同版本的Solr,你需要下载5.xx版本并以此为模板。
⼀旦Solr的zip⽂件下载将它解压缩到⼀个⽂件夹。
提取的⽂件夹看起来像下⾯。
Solr的⽂件夹bin⽂件夹中包含⽤来启动和停⽌服务器的脚本。
【solr开发文档】初始SolrJ开发, schema.xml的配置与服务初始化(1)

<schemaname="example"version="1.5">
<fields>
<!--field属性说明:
filed字段用于定义数据源字段所使用的搜索类型与相关设置.
name:数据源字段名,搜索使用到.
type:搜索类型名例如中文ika搜索名text_ika,对应于fieldType中的name.不需要分词的字符串类型,string即可,如果需要分词,types中配置好的分词type。
<fieldTypename="float"class="solr.TrieFloatField"precisionStep="0"omitNorms="true"positionIncrementGap="0"/>
<fieldTypename="double"class="solr.TrieDoubleField"precisionStep="0"omitNorms="true"positionIncrementGap="0"/>
<!--defaultSearchField节点
默认搜索的字段,默认值为text,
如果我们已经将需要搜索的字段拷贝至all字段了,在这里设为all即可-->
<defaultSearchField>text</defaultSearchField>
Solr使用手册

Solr部署及开发一、部署1 环境要求JDK 1.6及以上版本,Tomcat 6及以上,Solr发布版本4.X。
如果使用较低版本,请查看Solr版本支持的JDK版本。
2安装步骤首先安装JDK 1.7和Tomcat 7,配置好环境变量,并下载最新版Solr,目前版本为4.6.0。
如有必要可手动修改Tomcat端口号。
为了支持中文,需要修改tomcat中conf目录下的server.xml文件,在connector 节点中添加字符编码属性URIEncoding,如下:<Connector port="8086" protocol="HTTP/1.1"connectionTimeout="20000" URIEncoding="UTF-8"redirectPort="8443" />◆运行在jetty服务器Solr可以运行在自带的jetty服务器,可按如下步骤运行起来:1、解压solr-4.6.0.zip到你想到存放的路径,比如:d:/solr2、cmd打开命令行窗口,进入d:/solr/example目录3、执行命令:java -jar start.jar4、通过第三步以后,系统会启动solr自带的jetty服务器,通过http://localhost:8983/solr/便可访问solr。
此时,solr已成功启动。
◆运行在Tomcat服务器1、solr.4.6.0.zip解压到指定的目录中,如d:/solr-4.6.0。
2、将d:/solr-4.6.0/example/webapps下的solr.war拷贝到tomcat–>weapps中。
3、新建文件夹d:/sorl_home,将d:/solr-4.6.0/example/solr目录拷贝至d:/sorl_home中,如果要配置为多核应用,可以将solr-4.6.0\example下的multicore拷贝到d:/sorl_home中,这样就会有就会有core0和core1两个应用。
Solr搜索文档说明

Solr使用教程目录一、软件版本 (2)二、安装教程 (2)1、Solr安装教程 (2)2、solr环境搭建 (4)3、业务字段的实际配置 (7)4、dataimport 导入数据库数据 (8)5、solrj的使用 (10)6、电商平台的应用 (14)一、软件版本Solr版本号:solr-5.5.5jdk版本号:jdk1.8以上Tomcat版本号:Tomcat8.0以上二、安装教程1、Solr安装教程1.创建solrhome以及solrcore(mysolrhome、mycore 名字可以任意指定)1.1在指定的目录下新建文件夹solrhome如:D:\mysolrhome1.2将solr-5.5.4\server\solr\solr.xml拷贝至D:\mysolrhome1.3在solrhome下新建文件夹solrcore如D:\mysolrhome\mycore1.4将solr-5.5.4\server\solr\configsets\basic_configs\conf完整目录拷贝至D:\mysolrhome\mycore\下2.部署到Tomcat2.1将solr-5.5.4\server\solr-webapp\webapp 完整目录复制到Apache Tomcat 8.0.27\webapps下并重命名为solr2.2在Apache Tomcat 8.0.27\webapps\solr\WEB-INF下新建classes文件夹2.3将solr-5.5.4/server/resource/log4j.properties 拷贝至上一步创建的classes2.4把solr-5.5.4/server/lib/ext/目录下的所有jar文件复制到Apache Tomcat 8.0.27/webapp/solr/WEB-INF/lib/中3.配置solrcore3.1修改Apache Tomcat 8.0.27-solr\webapps\solr\WEB-INF\web.xml 新增<env-entry>标签,将你的solrhome配置进去。
solr配置及数据库及文档

一、准备数据1.去官网下载最新的solr。
当前最新为4.5版本。
2.准备tomcat7.(下载tomcat7)二、配置solr。
1.将下载的solr4.5解压得到:2.将example\solr-webapp 下的solr.war 放到tomcat的webapp下。
3.启动tomcat 此时报错,solr.war 解压关闭tomcat 删除solr.war4.得到solr 项目5.配置solr_home :将下载的solr包中解压的example/solr 文件夹copy到d:/solr/solr_home(路径可以任意修改)。
6.打开tomcat下的webapp\solr\WEB-INF 下的web.xml,修改添加如下代码:<env-entry><env-entry-name>solr/home</env-entry-name><env-entry-value>D:/solr/solr_home</env-entry-value><env-entry-type>ng.String</env-entry-type></env-entry>7.其中<env-entry-value> 中的值即为第5步中配置的路径。
8.copy 下载包中的example\lib\ext 下的jar包全部放到tomcat 的lib 目录下。
9设置solr/collection/conf/中的solrconfig.xml 中jar包路径,将路径该对就可以了。
10.将C:\app\solr-4.5.0\solr-4.5.0\example\resources下的log4j.properties拷贝到C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\solr\WEB-INF\classes下。
solrj操作文档

1. 设置pom.xml找到工程的pom.xml文件,增加依赖<dependency><groupId>org.apache.solr</groupId><artifactId>solr-solrj</artifactId><version>4.7.2</version></dependency><dependency><groupId>org.apache.zookeeper</groupId><artifactId>zookeeper</artifactId><version>3.4.5</version></dependency>其需要依赖的JAR包包含因一般工程里都会引用这些依赖jar包,在这里就不做pom.xml里的配置了,大家参照上面的图增加依赖和替换版本即可。
2. 设置solrcloud.properties∙在工程中新增properties配置,内容为solr.solrcloudServer=192.168.169.129:2181,192.168.169.12:2181,192.168.169.15:218 1/bjksolr.zkClientTimeout=2000solr.zkConnectTimeout=2000solr.solrcloudServer:是solrcloud的zookeeper配置信息solr.zkClientTimeout:当前应用与zookeeper连接超时时间solr.zkConnectTimeout:当前应用与zookeeper连接超时时间3. 增加java文件∙在工程中util目录下增加SolrCloudUtils.java4. 修改applicationContext.xml文件∙找到spring主配置文件applicationContext.xml,增加如下配置<!--红色位置为项目中solrcloud.properties文件的实际位置--><context:property-placeholder ignore-resource-not-found="true"location="classpath*:/environments/development/solrcloud.properties" /><!--红色位置为项目中SolrCloudUtils.java文件的实际包路径--><beanname="solrCloudUtils"class="com.jd.sph.report.service.solr.SolrCloudUtils"><property name="solrcloudServer" value="${solr.solrcloudServer}"></property><property name="zkClientTimeout" value="${solr.zkClientTimeout}"></property> <property name="zkConnectTimeout"value="${solr.zkConnectTimeout}"></property></bean>5. 操作solrj新建和查询索引在需要操作solrj的类上增加依赖注解信息@Resourceprivate SolrCloudUtils solrCloudUtils;查询索引/*** 从solr查询每日入库* @param query* @param page* @return*/public Page<InBoundPo> selectInBoundDayBySolr(PanYingDetailQueryVo query ,Page<InBoundPo> page){//设置查询条件SolrQuery solrQuery = new SolrQuery();StringBuffer queryStr = new StringBuffer("io:1 AND status:4 AND upDownTime:[2014-10-01T00:00:00Z TO 2015-10-01T00:00:00Z]");if(query.getOrgId()!=null && query.getOrgId()>0){queryStr.append(" AND newIdCompany:"+query.getOrgId());}if(query.getStoreId()!=null && query.getStoreId()>0){queryStr.append(" AND storeAttr:"+query.getStoreId());}System.out.println("查询参数"+queryStr);//设置查询条件solrQuery.setQuery(queryStr.toString());//设置查询分页条件solrQuery.set("start",(page.getPageNo()-1)*page.getPageSize());solrQuery.set("rows",page.getPageSize());//设置查询排序solrQuery.setSort("upDownTime",SolrQuery.ORDER.desc);List<InBoundPo> list = new ArrayList<InBoundPo>();CloudSolrServer cloudSolrServer = null;try {//根据core名称获取solrCloud连接cloudSolrServer = solrCloudUtils.getCloundSolrServer("transferdetail");QueryResponse res = cloudSolrServer.query(solrQuery);SolrDocumentList docs = res.getResults();InBoundPo inBoundPo = null;//循环将索引文档的信息转换到实体对象中for(SolrDocument doc:docs){inBoundPo = new InBoundPo();inBoundPo.setInBoundCode((Integer)doc.getFieldValue("transfer_id"));inBoundPo.setOrgId((Integer)doc.getFieldValue("NewIdCompany"));inBoundPo.setInType((Integer)doc.getFieldValue("type"));inBoundPo.setStoreName((String)doc.getFieldValue("storeName"));inBoundPo.setIdPart((String)doc.getFieldValue("idPart"));inBoundPo.setWareName((String)doc.getFieldValue("wareName"));inBoundPo.setWareId((Integer)doc.getFieldValue("wareId"));inBoundPo.setCid1((Integer)doc.getFieldValue("cid1"));inBoundPo.setCid2((Integer) doc.getFieldValue("cid2"));inBoundPo.setCid3((Integer) doc.getFieldValue("cid3"));inBoundPo.setSupplierID((String)doc.getFieldValue("supplierID"));if((String)doc.getFieldValue("price")!=null){inBoundPo.setCostPrice(newBigDecimal((String)doc.getFieldValue("price")));}inBoundPo.setLossType((Integer) doc.getFieldValue("losstype"));inBoundPo.setXmlAttaches((String)doc.getFieldValue("xmlAttaches"));inBoundPo.setSalesPin((String)doc.getFieldValue("salesPin"));list.add(inBoundPo);}long numFound = docs.getNumFound();page.setTotalCount(numFound);System.out.println("查询总数量:"+numFound);System.out.println("查询耗费时间:"+res.getQTime());page.setResult(list);} catch (SolrServerException e) {e.printStackTrace();} finally {//关闭solrCloud连接cloudSolrServer.shutdown();}return page;}新增索引//创建solrserver连接CloudSolrServer solrServer=solrCloudUtils.getCloundSolrServer("transferdetail");//需要提交的索引集合Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();SolrInputDocument doc = null;//获取transfer和defstore信息for(BigEntity bigEntity:list){doc = new SolrInputDocument();//afs_transferdoc.addField("transfer_id", bigEntity.getTransfer_id());doc.addField("idStoreFrom", bigEntity.getIdStoreFrom());doc.addField("idStoreTo", bigEntity.getIdStoreTo());doc.addField("type", bigEntity.getType());doc.addField("io", bigEntity.getIo());doc.addField("status", bigEntity.getStatus());doc.addField("yn", bigEntity.getYn());doc.addField("fromPin", bigEntity.getFromPin());doc.addField("fromName", bigEntity.getFromName());if(bigEntity.getFromTime()!=null){doc.addField("fromTime", solrUtil.solrTime(bigEntity.getFromTime()));}doc.addField("fromNotes", bigEntity.getFromNotes());doc.addField("toPin", bigEntity.getToPin());doc.addField("toName", bigEntity.getToName());if(bigEntity.getToTime()!=null){doc.addField("toTime", solrUtil.solrTime(bigEntity.getToTime()));}doc.addField("toNotes", bigEntity.getToNotes());doc.addField("idCompany", bigEntity.getIdCompany());doc.addField("kdanhao", bigEntity.getKdanhao());doc.addField("istemp", bigEntity.getIstemp());doc.addField("getWare", bigEntity.getGetWare());doc.addField("newIdCompany", bigEntity.getNewIdCompany());doc.addField("idStore", bigEntity.getIdStore());if(bigEntity.getTimeUpdated()!=null){doc.addField("timeUpdated",solrUtil.solrTime(bigEntity.getTimeUpdated()));}doc.addField("manUpdated", bigEntity.getManUpdated());doc.addField("storeFrom", bigEntity.getStoreFrom());doc.addField("storeTo", bigEntity.getStoreTo());doc.addField("isApproved", bigEntity.getIsApproved());if(bigEntity.getUpDownTime()!=null){doc.addField("upDownTime",solrUtil.solrTime(bigEntity.getUpDownTime()));}doc.addField("inventory_status", bigEntity.getInventory_status());doc.addField("inventory_name", bigEntity.getInventory_name());doc.addField("inventory_pin", bigEntity.getInventory_pin());doc.addField("inventory_check_notes",bigEntity.getInventory_check_notes());if(bigEntity.getInventory_time()!=null){doc.addField("inventory_time",solrUtil.solrTime(bigEntity.getInventory_time()));}doc.addField("ts", bigEntity.getTs());doc.addField("rfidType", bigEntity.getRfidType());docs.add(doc);}//提交到solrcloudsolrServer.add(docs);mit();//关闭solrcloud连接solrServer.shutdown();注意:时间处理需要将时间转换为yyyy-MM-dd T hh:mm:ss:Z千万不要忘了T和Z因为SOLR存储索引的时候,默认是以格林威治时间进行存储,当创建索引的时候,时间会减去8小时,所以为了保证时间一致性,我们在操作时间的时候,要么在创建索引时时间增加8小时,要么在查询时,时间减去8小时。
银河麒麟服务器操作系统 V4 solr 软件适配手册说明书

银河麒麟服务器操作系统V4 solr软件适配手册天津麒麟信息技术有限公司2019年6月目录目录 (I)1概述 (2)1.1系统概述 (2)1.2环境概述 (2)1.3SOLR软件简介 (2)1.4SOLR优点 (2)1.5SOLR架构及原理 (3)1.5.1全文检索 (3)1.5.2索引创建和搜索过程 (3)2SOLR软件适配 (4)1)下载并解压SOLR (4)2)下载TOMCAT (4)3)准备依赖包 (4)4)配置SOLRHOME (5)5)配置TOMCAT (5)3验证SOLR部署 (6)1概述1.1系统概述银河麒麟服务器操作系统主要面向军队综合电子信息系统、金融系统以及电力系统等国家关键行业的服务器应用领域,突出高安全性、高可用性、高效数据处理、虚拟化等关键技术优势,针对关键业务构建的丰富高效、安全可靠的功能特性,兼容适配长城、联想、浪潮、华为、曙光等国内主流厂商的服务器整机产品,以及达梦、金仓、神通、南大通用等主要国产数据库和中创、金蝶、东方通等国产中间件,满足虚拟化、云计算和大数据时代,服务器业务对操作系统在性能、安全性及可扩展性等方面的需求,是一款具有高安全、高可用、高可靠、高性能的自主可控服务器操作系统。
1.2环境概述服务器型号长城信安擎天DF720服务器CPU类型飞腾2000+处理器操作系统版本Kylin-4.0.2-server-sp2-2000-19050910.Z1内核版本 4.4.131solr版本7.7.21.3solr软件简介Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service 的API接口。
用户可以通过http请求,向搜索引擎服务器提交一定格式的XML 文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。
Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。
同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文搜索引擎。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Solr全文检索技术1.Solr介绍 152.Solr安装配置-SolrCore配置 153.Solr安装配置-Solr工程部署 104.Solr安装配置-Solr工程测试 155.Solr安装配置-多SorlCore配置 106.Solr入门--schema 207.Solr入门-安装中文分词器 158.Solr入门-自定义业务系统Field 209.Solr入门-SolrJ介绍1010.Solr入门-SolrJ索引维护 2011.Solr入门-数据导入处理器2012.Solr入门-搜索语法 1013.Solr入门-SolrJ-搜索 2014.Solr案例-需求分析 1015.Solr案例-架构设计 1516.Solr案例-Service 2017.Solr案例-Controller 2018.Solr案例-主体调试 2019.Solr案例-功能完善1【Solr介绍】1.1S olr是什么Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务。
Solr提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对索引、搜索性能进行了优化。
Solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中,Solr 索引的实现方法很简单,用 POST 方法向 Solr 服务器发送一个描述 Field 及其内容的 XML 文档,Solr根据xml文档添加、删除、更新索引。
Solr 搜索只需要发送 HTTP GET 请求,然后对 Solr 返回Xml、json等格式的查询结果进行解析,组织页面布局。
Solr不提供构建UI的功能,Solr提供了一个管理界面,通过管理界面可以查询Solr的配置和运行情况。
1.2S olr与Lucene的区别Lucene是一个开放源代码的全文检索引擎工具包,它不是一个完整的全文检索引擎,Lucene提供了完整的查询引擎和索引引擎,目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能,或者以Lucene为基础构建全文检索引擎。
Solr的目标是打造一款企业级的搜索引擎系统,它是一个搜索引擎服务,可以独立运行,通过Solr可以非常快速的构建企业的搜索引擎,通过Solr也可以高效的完成站内搜索功能。
1.3Solr下载从Solr官方网站(/solr/ )下载Solr4.10.3,根据Solr的运行环境,Linux下需要下载lucene-4.10.3.tgz,windows下需要下载lucene-4.10.3.zip。
Solr使用指南可参考:https:///solr/FrontPage。
下载solr-4.10.3.zip并解压:bin:solr的运行脚本contrib:solr的一些贡献软件/插件,用于增强solr的功能。
dist:该目录包含build过程中产生的war和jar文件,以及相关的依赖文件。
docs:solr的API文档example:solr工程的例子目录:●example/solr:该目录是一个包含了默认配置信息的Solr的Core目录。
●example/multicore:该目录包含了在Solr的multicore中设置的多个Core目录。
●example/webapps:该目录中包括一个solr.war,该war可作为solr的运行实例工程。
licenses:solr相关的一些许可信息1.4运行环境solr 需要运行在一个Servlet容器中,Solr4.10.3要求jdk使用1.7以上,Solr 默认提供Jetty(java写的Servlet容器),本教程使用Tocmat作为Servlet容器,环境如下:Solr:Solr4.10.3Jdk:jdk1.7.0_72Tomcat:apache-tomcat-7.0.532Solr安装配置2.1S olr与Tomcat整合2.1.1【SolrCore配置】2.1.1.1SolrHome与SolrCore创建一个Solr home目录,SolrHome是Solr运行的主目录,目录中包括了运行Solr 实例所有的配置文件和数据文件。
Solr实例即SolrCore,一个SolrHome中可以包括多个SolrCore目录,每个SolrCore对外提供单独的搜索和索引服务。
2.1.1.2目录结构example\solr是一个solr home目录结构,如下:collection1:叫做一个Solr运行实例SolrCore也称为一个collection,SolrCore 的名称不固定,命名方式类似collection1/collection2/collection3等,每个collection对外单独提供索引和搜索接口。
solrHome中可以创建多个solrCore即collection。
SolrCore目录内容如下所示:说明:(1)一个solrCore中包括一个索引目录,该目录存储了该 SolrCore的索引文件。
data 是SolrCore的索引文件目录,如果没有solr会自动创建。
(2)conf是SolrCore的配置文件目录:里面包括两个重要的配置文件solrconfig.xml 与schema.xml配置文件2.1.1.3创建SolrCore创建目录F:\develop\solr将example\solr目录拷贝至 F:\develop\solr目录下并改名为solrHome。
将contrib和dist两个目录拷贝到F:\develop\solr下。
SolrHome下:2.1.1.4SolrCore配置每个SolrCore的conf目录下有solrconfig.xml文件,它是SolrCore运行的配置文件。
2.1.1.4.1加载jar包在solrconfig.xml中可以加载一些扩展的jar,solr.install.dir表示solrCore 的目录位置,需要根据扩展Jar的实际存放位置坐对应的修改:2.1.1.4.2dataDir索引目录每个SolrCore都有自己的索引文件目录,默认在SolrCore目录下的data中。
data数据目录下包括了index索引目录和tlog日志文件目录。
如果不想使用默认的目录也可以通过solrConfig.xml更改索引目录,如下:2.1.1.4.3请求处理器requestHandler请求处理器,定义了索引和搜索的访问方式。
通过/update维护索引,可以完成索引的添加、修改、删除操作。
提交xml、json数据完成索引维护,索引维护小节详细介绍。
通过/select搜索索引。
设置搜索参数完成搜索,搜索参数也可以设置一些默认值,如下:<requestHandler name="/select" class="solr.SearchHandler"><!-- 设置默认的参数值,可以在请求地址中修改这些参数--><lst name="defaults"><str name="echoParams">explicit</str><int name="rows">10</int><!--显示数量--><str name="wt">json</str><!--显示格式--><str name="df">text</str><!--默认搜索字段--></lst></requestHandler>2.1.2【Solr工程部署】1.将dist\solr-4.10.3.war拷贝到Tomcat的webapp目录下改名为solr.war2.启动tomcat后,solr.war自动解压,将原来的solr.war删除。
3.拷贝example\lib\ext 目录下所有jar包拷贝到Tomcat的webapp\solr\WEB-INF\lib目录下4.修改Tomcat目录下webapp\solr\WEB-INF\web.xml文件,如下所示:设置Solrhome5.拷贝log4j.properties文件在 Tomcat下webapps\solr\WEB-INF目录中创建文件 classes文件夹,复制Solr目录下example\resources\log4j.properties至Tomcat下webapps\solr\WEB-INF\classes目录2.1.3启动Tomcat访问http://localhost:8080/solr2.2【管理界面】2.2.1Dashboard:仪表盘,显示了该Solr实例开始启动运行的时间、版本、系统资源、jvm等信息。
2.2.2Logging:Solr运行日志信息2.2.3Cloud:Cloud即SolrCloud,即Solr云(集群),当使用Solr Cloud模式运行时会显示此菜单,如下图是Solr Cloud的管理界面:2.2.4Core Admin:Solr Core的管理界面。
Solr Core 是Solr的一个独立运行实例单位,它可以对外提供索引和搜索服务,一个Solr工程可以运行多个SolrCore(Solr实例),一个Core对应一个索引目录。
2.2.5java propertiesSolr在JVM 运行环境中的属性信息,包括类路径、文件编码、jvm内存设置等信息。
2.2.6Tread Dump显示Solr Server中当前活跃线程信息,同时也可以跟踪线程运行栈信息。
2.2.7Core selector选择一个SolrCore进行详细操作,如下:2.2.8Analysis(重点)通过此界面可以测试索引分析器和搜索分析器的执行情况。
2.2.9dataimport可以定义数据导入处理器,从关系数据库将数据导入到Solr索引库中。
2.2.10Document(重点)通过此菜单可以创建索引、更新索引、删除索引等操作,界面如下:/update表示更新索引,solr默认根据id(唯一约束)域来更新Document的内容,如果根据id值搜索不到id域则会执行添加操作,如果找到则更新。
2.2.11query(重点)通过/select执行搜索索引,必须指定“q”查询条件方可搜索。
2.3【多SolrCore配置】配置多SolrCore的好处:1.一个solr工程对外通过SorlCore 提供服务,每个SolrCore相当于一个数据库,这个功能就相当于一个mysql可以运行多个数据库。