前言
前前后后接触Solr有一个多月了,想趁着学习Solr顺便把java拾起来。我分别用4.X和5.X版本在windows环境下用jetty的方式、tomcat部署的方式自己搭建了一把。其中从4.x到5.x和6.x的变化还是有的。搭建起来Solr后我分别用调用http接口的方式、SolrNet实现了索引的增删改查,在使用SolrNet开发时发现查询时不时的还报错,不知道是不是因为Solr的版本太高。 在学习Solr的过程中参考几位师傅的博客,从搭建平台、创建索引、搜索索引数据、中文分词都了解了一些,后面会把这些都整理出来。 文章最后我会贴出链接。
Solr搭建工作
1、下载solr windows安装包。这里我用的是5.5.1。下载完成后解压缩。 5.X版本中example包含几个入门的非结构化文件:csv、json、xml。可通过post.jar命令导入以便如入门。部署的话则要用到server
2、安装tomcat8。把solr-5.5.1/server/solr-webapp文件夹下的webapp目录复制拷贝到Tomcat/webapps文件夹内并重命名webapp目录名为solr。
3、把solr-5.5.1/server/lib/ext中的jar包复制到Tomcat/webapps/solr/WEB-INF/lib目录中。
4、在任意盘符新建solr_home文件夹(我在D盘创建)。把solr-5.5.1/server/solr目录复制到solr_home下。这个目录也就是后面你创建索引实例Core需要用到的目录。配置文件(schema.xml)和索引都保存在这里。
5、把solr-5.5.1/server/resources下的log4j.properties复制到Tomcat/webapps/solr/WEB-INF/classes目录内。如果classes不存在手动创建。
6、配置web.xml。打开Tomcat/webapps/solr/WEB-INF下的web.xml。找到如下配置内容
<env-entry> <env-entry-name>solr/home</env-entry-name> <env-entry-value>/put/your/solr/home/here</env-entry-value> <env-entry-type>java.lang.String</env-entry-type> </env-entry>
放开注释,并修改env-entry-value为你的solr_home地址。我的地址是d:/solr_home/solr。
OK。保存。顺便重启下tomcat。然后在浏览器输入http://localhost:8080/solr/index.html。 刚开始我配置完后直接输入http://localhost:8080/solr 回车提示404. 4.x部署这样是能打开的,5.x必须输入到index.html。 出现下图则说明你的solr Admin UI搞定了。
创建Core
5.x没有了默认的Core,需要自己配置。在d:/solr_home/solr创建Core目录,我起名univeral并把d:/solr_home/solr/configsets目录内的conf目录复制进去并创建data文件夹,conf放配置文件,data放索引数据(index data)。打开Admin UI 左侧有Core Admin。 把表单中的name和instanceDir输入univeral。 然后点击【Add Core】
小试牛刀之创建索引
在Admin UI中选择左下方的Core Selector找到你刚才创建的universal实例。点击展开菜单。选择documents。
注意:当你点击【Submit Document】按钮时会提示你Field title不存在,这是因为你的schema.xml没配置这个字段。在d:/solr_home/solr/univeral/conf下找到managed-schema(老版本是schema.xml),打开配置field字段。
右侧出现Status:success则说明索引创建成功.
小试牛刀之搜索
在Solr Admin UI 左侧Core实例菜单中点击Query。默认q=*:*查询全部。 solr查询使用的http get接口。包括字段筛选、关键字查询、高亮、facet(垂直分片查询)都在get路径里输入参数。
总结
刚开始摸索Solr,有很多东西搞的还不是很清楚,后面我想基于.net和java把创建索引、搜索接口、中文分词这块都做一做。 下面是我学习过程中参考的博客
http://martin3000.iteye.com/blog/1330106