Sorl的简单入门

本文介绍了Solr的基本概念和安装配置步骤,包括设置Solrhome、配置Core以及理解配置文件。重点讲解了如何解决Solr5.5与IK分词器的兼容性问题,通过修改源码实现对Lucene5的支持。同时,文章还提到了Solrj客户端的使用和Solr的一些高级查询技巧。
摘要由CSDN通过智能技术生成

一 . 什么是solr

    solr是以lucene为内核开发的企业级搜索应用  应用程序可以通过http请求方式来提交索引,查询索引,提供了比lucene更丰富的查询语言,是一个高性能,高可用环境全文搜索引擎

二 .solr安装配置

1.下载solr安装包solr所有版本 (http://archive.apache.org/dist/lucene/solr/) 这里下载 solr-5.5.4

     2.安装 解压将solr-5.5.4\server\solr-webapp下的webapp 拷贝到tomcat\webapps目录下 改名为solr 启动tomcat直接访问 会出现缺少SLF4j包异常 应该去 应该去 解压包 /server/lib/ext下找到并拷贝到 tomcat/solr/lib目录下  然后重启  继续访问 出现以下错误 

java.lang.NoSuchMethodError: javax.servlet.ServletInputStream.isFinished()Z  
    org.apache.solr.servlet.SolrDispatchFilter.consumeInputFully(SolrDispatchFilter.java:284)  
    org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:274)  
    org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208) 
明显是Servlet版本不一致  tomcat6不支持solr5.54 加大tomcat版本 tomcat7也不支持 换成tomcat8  启动后访问 依然错误

org.apache.solr.common.SolrException: Error processing the request. CoreContainer is either not initialized or shutting down.  
    org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:217)  
    org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:208) 
是因为需要配置solrhome和solrhome的配置环境

3.配置solrhome

 找到 tomcat\solr\WEB-INF\web.xml 编辑  找到以下这段(配置solrhome)  去掉注释 将第二个参数配置为本地创建的一个新目录即可 

<env-entry>  
   <env-entry-name>solr/home</env-entry-name>  
   <env-entry-value>F:\solrHome</env-entry-value>  
   <env-entry-type>java.lang.String</env-entry-type>  
</env-entry>  
到solr解压包/server/solr目录拷贝所有文件到 以上web.xml指定的路径F:\solrHom下 重启tomcat 访问

   http://localhost:8080/solor/index.html  或者 http://localhost:8080/solr/admin.html  



4.配置core(core类似于数据库可以插入多个document(数据库表行)每个document拥有多个 field 数据库的列)

   solrhome下新建一个core目录  比如core1

   拷贝 solr解压包下\server\solr\configsets\basic_configs\conf到新建目录 core1中

  进入solr管理网页 点击 core admin 添加该core1


 点击Add core后 成功后 检查 core目录 发现多了 core.properties和data两个资源

5.配置文件理解

 core/conf目录下的两个配置文件非常重要 

    managed-schema 主要用于配置 可以提交到该core的所有field定义,field的类型定义,唯一标识符等

    常用配置如下:

定义字段 _version_ 类型为long  indexed="true" 会进行分词索引  stored="true"表示存储到磁盘  
<field name="_version_" type="long" indexed="true" stored="true"/>  
定义字段 id required="true" 表示所有的document必须添加id字段 multiValued="false" 表示是否是多值字段  
<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />   
定义动态字段 所以_i结尾的字段都可以写入到当前的core  
<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>  
定义唯一标识符的字段  
<uniqueKey>id</uniqueKey>  
定义字段类型的别名  
<fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 
   solrconfig.xml  主要用于配置solor的主要配置信息 比如lucene版本 缓存 数据目录 请求路径映射 等 

表示lucene版本  
<luceneMatchVersion>5.5.4</luceneMatchVersion>  
表示数据目录 默认是data目录  
<dataDir>${solr.data.dir:}</dataDir>   
自动提交配置  
<autoCommit>   
       当超过15000ms后自动提交所有数据  
       <maxTime>${solr.autoCommit.maxTime:15000}</maxTime>   
       是否马上就可以查询到  
       <openSearcher>false</openSearcher>   
&
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值