1、下载solr包
地址:http://www.apache.org/dyn/closer.lua/lucene/solr/6.5.0
2、安装solr
(1)解压安装包solr-6.5.0,我安装到E盘的;
(2)创建一个内核,即一个core:
a、在solr-6.5.0下新建一个包,命名solrhome;
b、solrhome下新建包news,因为我这是给新闻创建的索引,所以取名news
c、将E:\solr-6.5.0\server\solr下的文件copy到solrhome下;
这是copy后的地方:
d、将E:\solr-6.5.0\solrhome\configsets\basic_configs下的conf包copy到内核news中
3、部署到tomcat中
a、将E:\solr-6.5.0\server\solr-webapp下的webapp包copy到tomcat的webapp下,并将web名字修改为solr6.5
b、添加依赖包
将E:\solr-6.5.0\server\lib\ext下的所有包copy到tomcat的webapps\solr6.5\WEB-INF\lib中;
E:\solr-6.5.0\server\lib下的所有metrics-先关的jar包也copy进去
c、添加log4j的配置文件
E:\solr-6.5.0\server\resources下的log4j配置文件复制到tomcat的webapps下的classes文件夹中
4、配置web.xml的solrhome
打开tomcat下的webapps\solr6.5\WEB-INF的web.xml文件
将其中的注释打开,并改为:
<env-entry>
<env-entry-name>solr/home</env-entry-name>
<env-entry-value>E:\solr-6.5.0\solrhome</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
5、启动tomcat,访问访问localhost:8080/solr6.5
若出现403的错误,修改solr项目中的web.xml,将168行左右的security-constraint代码注释掉
若出现404错误,则把URL改为localhost:8080/solr6.5/index.html
6、在页面加如core
在core Admin中点击Add Core,注意其中的name随意你命名,但是instanceDir必须和前面我们命名一致(我新闻名的news)
7、关于solrconfig.xml和schema.xml
schma.xml类似于数据表配置文件,定义了加入索引的数据的数据类型,主要包括type、fields和其他的一些缺省设置。
例如,我新闻配置的字段等:
<!-- 新闻ID -->
<field name="id" type="long" indexed="true" stored="true" required="true"/>
<!-- 分类代码-->
<field name="categorycode" type="string" indexed="true" stored="true"/>
<!-- 机构代码 -->
<field name="comcode" type="string" indexed="true" multiValued="true" stored="true"/>
<!-- 栏目代码 -->
<field name="sectorcode" type="string" indexed="true" multiValued="true" stored="true"/>
<!-- 证券内码 -->
<field name="innercode" type="string" indexed="true" multiValued="true" stored="true"/>
<!-- 行业代码-->
<field name="industrycode" type="string" indexed="true" multiValued="true" stored="true"/>
<!-- 专题代码 -->
<field name="subjectcode" type="string" indexed="true" multiValued="true" stored="true"/>
<!-- 区域代码 -->
<field name="areacode" type="string" indexed="true" stored="true"/>
<!-- 信息源代码 -->
<field name="sourcecode" type="string" indexed="true" stored="true"/>
<!-- 媒体代码 -->
<field name="mediacode" type="string" indexed="true" stored="true"/>
<!-- 其他媒体 -->
<field name="othermedia" type="string" indexed="true" stored="true"/>
<!-- 发布时间yyyy-MM-dd HH:mm:ss -->
<field name="publishdate" type="date" indexed="true" stored="true"/>
<!-- 发布日期YYYYMM-->
<field name="date1" type="integer" indexed="true" stored="false"/>
<!-- 发布日期YYYYMMDD -->
<field name="date2" type="integer" indexed="true" stored="false"/>
<!-- 链接地址 -->
<field name="url" type="string" indexed="false" stored="true"/>
<!--作者 -->
<field name="author" type="string" indexed="true" stored="true"/>
<!-- 标题 -->
<field name="title" type="text" indexed="true" stored="true" omitNorms="false"/>
<!-- 新闻是否负面 -->
<field name="negative" type="boolean" indexed="true" stored="false"/>
<!-- 摘要-->
<field name="description" type="string" indexed="false" compressed="false" stored="true"/>
<!-- 正文 -->
<field name="contents" type="text" indexed="true" multiValued="true" compressed="true" omitNorms="false"/>
里面各个字段的意思在完整文件里有说明,总的来说,这就是在我们进行查询时的查询条件。
不过,找到一个关于这2个配置文件有具体说明的网址,大家可以去此网址进行深入了解:
http://www.blogjava.net/conans/articles/379545.html