1.下载solr-4.7.1
http://www.apache.org/dyn/closer.cgi/lucene/solr/4.7.1
环境需求:java 1.6版本以上;solr运行需要java serverlet 容器,默认使用jetty,或者tomcat,jboss等等。
2.Tomcat部署solr:
1. 安装好jdk 1.6以上(我用是jdk 1.7.0_15),安装好tomcat(我用是apache-tomcat-7.0.6),并配置环境变量。
2. 将解压包中的solr-4.7.1/dist/solr-4.7.1.war复制到tomcat_dir/webapps/目录,并命名为solr.war。
3. 将solr-4.7.1/example/lib/ext/目录下的jar文件复制到tomcat/lib目录下,将solr-4.7.1/example/resources/下的log4j.properties文件复制到tomcat_dir/lib目录下;
切把 solr-4.7.1/example/solr,复制到tomcat_dir/bin下。
4.修改tomcat_dir/conf/server.xml
1
2
3
4
|
< Connector port = "8080" protocol = "HTTP/1.1"
connectionTimeout = "20000"
redirectPort = "8443" URIEncoding = "UTF-8" />
|
5.创建solr.xml,存放在路径:tomcat/conf/Catalina/localhost/solr.xml,内容:
1
2
3
4
|
< Context path = "/solr" docBase = "F:\Tomcat 7.0\webapps\solr.war"
debug = "0" crossContext = "true" >
< Environment name = "solr/home" type = "java.lang.String" value = "FF:\Tomcat 7.0\bin\solr\" override = "true" />
</ Context >
|
注意:上面的docBase和value路径中不能存在中文字符,否则会出现404错误。
此时若安装及配置都正确,在浏览器中输入:http://127.0.0.1:9000/solr/,会出现Solr的管理界面:
6.将F:\Tomcat 7.0\webapps下的solr.war包,启动项目解压;然后再添加几个jar包:
solr-4.7.1\dist\solr-dataimporthandler-4.7.1.jar;
solr-4.7.1\dist\solr-dataimporthandler-extras-4.7.1.jar;
还要加载数据库驱动包:mysql-connector-java-3.1.13-bin.jar
7、在F:\Tomcat 7.0\bin\solr\collection1\conf 下的solrconfig.xml增加以下数据库配置:
1
2
3
4
5
|
< requestHandler name = "/dataimport" class = "org.apache.solr.handler.dataimport.DataImportHandler" >
< lst name = "defaults" >
< str name = "config" >data-config.xml</ str >
</ lst >
</ requestHandler >
|
8.将tomcat\bin\solr\collection1\conf下增加data-config.xml文件,内容如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
< dataConfig >
< dataSource type = "JdbcDataSource" driver = "com.mysql.jdbc.Driver" url = "jdbc:mysql://192.168.1.221:3306/tmsdb" user = "root" password = "123456" />
< document name = "content" >
< entity name = "node" query = "select id,author,title,content from solrdb" >
< field column = "id" name = "id" />
< field column = "author" name = "author" />
< field column = "title" name = "title" />
< field column = "content" name = "content" />
</ entity >
</ document >
</ dataConfig >
|
9.增加中文分词器,ik-analyzer的配置如下:
①目前的中文分词主要有两种
1,基于中科院ICTCLAS的隐式马尔科夫hhmm算法的中文分词器,例如smartcn等。(不支持自定义扩展词库)
2,基于正向迭代最细粒度切分算法(正向最大匹配并且最细分词)例如IK,庖丁等(支持自定义扩展词库)
安装分词前,可以去下载IK的分词包 :
1
|
IK-Analyzer- 4.7 . 1 - 0.0 . 1 -SNAPSHOT.jar
|
下载完毕后,将此包放进tomcat\solr的\WEB-INF\lib下面:tomcat\webapps\solr\WEB-INF\lib 。
下面需要在solr的schemal.xml进行分词器注册:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<!-- 配置IK分词器 --> < fieldType name = "text_ik" class = "solr.TextField" positionIncrementGap = "100" >
< analyzer type = "index" >
<!-- 分词--> < tokenizer class = "org.wltea.analyzer.lucene.IKTokenizerFactory" />
<!-- 禁用词过滤根据情况使用--> <!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/> --> </ analyzer >
< analyzer type = "query" >
<!-- 分词--> < tokenizer class = "org.wltea.analyzer.lucene.IKTokenizerFactory" />
<!-- 禁用词过滤根据情况使用--> <!-- <filter class="org.wltea.analyzer.lucene.IKStopFilterFactory"/>--> </ analyzer >
</ fieldType >
|
最后还得配置一个引用字段就OK了
1
|
< field name = "ik" type = "text_ik" indexed = "true" stored = "true" multiValued = "true" />
|
②它的安装部署十分简单,将IKAnalyzer2012.jar部署亍项目的lib目录中;IKAnalyzer.cfg.xml不stopword.dic文件放置在class根目录(对于web项目,通常是WEB-I NF/classes目彔,同hibernate、log4j等配置文件相同)下即可 ;然后配置solr4.7中schema.xml配置解析器:
1
2
3
4
5
6
7
|
< schema name = "example" version = "1.1" >
……
< fieldType name = "text" class = "solr.TextField" >
< analyzer class = "org.wltea.analyzer.lucene.IKAnalyzer" />
</ fieldType >
……
</ schema >
|
10. solr schema.xml配置总结:
schema.xml 在solr/conf/目录下,类似于数据表配置文件。
为了改进性能,可以采取以下几种措施:
①. 将所有只用于搜索的,而不需要作为查询结果的field(特别是一些比较大的field)的stored设置为false。
②. 将不需要被用于搜索的,而只是作为查询结果返回的field的indexed设置为false。
③. 删除所有不必要的copyField声明,根据需要决定是否进行存储。
④. 为了索引字段的最小化和搜索的效率,将所有的 text fields的index都设置成false,然后使用copyField将他们都复制到一个总的 text field上,然后对他进行搜索。
⑤. 使用尽可能高的Log输出等级,减少日志量。可以在solr/admin 中的 LOGGING 进行设置。
特珠说明:
1. 高亮是基于分词的,所有存储需要高亮显示的字段 一定要分词(text)才能高亮显示。
2. 排序字段 是不能当 查询过滤的条件。
文本主要配置项:
①. field 类型定义
重点是中文分词的添加
②. field 各属性定义
name type类型 indexed是否建立索引 stored是否存储 required 是否必填项 multiValued多值存储
③. 唯一key
<uniqueKey>id</uniqueKey>
文档的唯一标识, 必须填写这个field(除非该field被标记required="false"),否则solr建立索引报错。
④. 默认搜索字段 field
<defaultSearchField>text</defaultSearchField>
如果搜索参数中没有指定具体的field,那么这个做为默认的域。
⑤. 搜索参数短语间逻辑
<solrQueryParser defaultOperator="OR"/>
配置搜索参数短语间的逻辑,可以是"AND|OR"。
备注: AND是交集,OR是并集
⑥. 复制字段
<copyField source="content" dest="text"/>
将多个字段的值 复制至 一个字段中,如果被复制的字段都设置为stored,那个这个字段务必不要设置成stored=true
⑦. 自定义评分器
<similarity class="......SolrSimilarity"/>
SolrSimilarity 是继承 DefaultSimilarity的子类,或者实现评分器接口的类。
解析:multiValued:是否包含多个值,如果要使用后面的copyField将其他字段放入默认搜索中就必须允许多指,否则会报:multiple values encountered for non multiValued copy field content。
defaultSearchField配置默认搜索索引,copyField可以将 title、author字段添加至content默认搜索中
1
2
3
4
5
|
< uniqueKey >id</ uniqueKey >
< defaultSearchField >content</ defaultSearchField >
< solrQueryParser defaultOperator = "OR" />
< copyField source = "title" dest = "content" />
< copyField source = "author" dest = "content" />
|
相关推荐
Solr是一个独立的企业级应用服务器,它对外提供类似于Web-service的API接口。用户可以通过http请求,向搜索引擎服务器提交一定格式的xml文件, 生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回...
solr 安装与配置
solr安装和使用
在Linux系统上如何搭建了solr搜索服务,同时运用到项目中
Solr安装配置 详细安装SOLR安装配置图片展示
Tomcat和solr安装配置说明,详细记录了Tomcat和solr安装配置
描述solr与tomcat的部署,solr与java web相关开发
基于solr5.5.5的安装部署文档,包含solr导入Oracle数据库
本人最近学习了传智播客的一个电商项目,把里面用到的工具和大家分享一下,方便大家的javaweb的学习。-Solr是一个高性能,采用Java5开发, Solr Solr 基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比...
Solr,SolrCloud, Windows, Tomcat, Apache 在Windows操作系统上进行Solr的云安装与配置
详细solr安装和介绍
描述了solr安装与配置,后续将会更新solr的集群配置
windows中Solr的配置和安装:快速安装搭建sorl在windows中
Solr安装与配置 完整的solr配置步骤,带截图,说明很清晰。
文档中详细介绍了如何在ubuntu下面安装solr-4.9.0,以及在安装过程中出现的问题和解决办法
solr安装设置资料solr安装设置资料
solr 安装教程
给出了solr的安装配置说明,分单核和多核两部分
Solr5安装部署说明
solr 安装教程,图文很相信