天天看点

solr单机版的配置

linux下solr单机版安装步骤:

1、首先需要安装jdk、tomcat,jdk的安装网上有很多详细的教程,至于tomcat的安装也很简单,只需上传压缩包并且解压就好;

[root@bogon ~]# tar -zxf apache-tomcat-7.0.47.tar.gz 
[root@bogon ~]# mkdir /usr/local/solr
[root@bogon ~]# cp -r apache-tomcat-7.0.47 /usr/local/solr/tomcat 
           

2、将solr的压缩包上传到linux虚拟机中并解压;

3、将root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war

4、解压war包。启动tomcat自动解压。关闭tomcat。删除solr.war;

5、把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中;

6、创建solrhome。Solrhome是存放solr服务器所有配置文件的目录。将原solr解压包下的example文件下的solr文件夹全部复制到/usr/local/solr下并重命名为solrhome;

[root@bogon example]# pwd
/root/solr-./example
[root@bogon example]# cp -r solr /usr/local/solr/solrhome
           

7、告诉solr服务器solrhome的位置,需要修改tomcat下solr工程的下的web.xml文件

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/solr/solrhome</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
 </env-entry>
           

8、启动tomcat,此时就可以通过浏览器访问solr了。

此时solr服务器中还没有任何你添加的业务字段,所以在你自己的工程中,你还需要添加自己的业务字段 (注意字段必须先定义然后才能使用),在添加业务字段之前,我们需要配置中文分词器,

9、将中文分词器IK Analyzer 2012FF_hf1上传到linux服务器;

10、将IKAnalyzer2012FF_u1.jar这个jar包拷贝到tomcat下的solr工程的lib目录下;

11、需要把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath下。

注意:扩展词词典以及停用词词典必须是utf-8.使用windows记事本编辑保存时注意使用utf-8码;

12、配置fieldType。需要在solrhome/collection1/conf/schema.xml中配置。

<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
           

13、配置业务字段,搜索时就可以使用这些业务字段了(也是在schema.xml中配置);

<field name="item_title" type="text_ik" indexed="true" stored="true"/>
    <field name="item_sell_point" type="text_ik" indexed="true" stored="true"/>
    <field name="item_price"  type="long" indexed="true" stored="true"/>
    <field name="item_image" type="string" indexed="false" stored="true"/>
    <field name="item_category_name" type="string" indexed="true" stored="true" />
    <field name="item_desc" type="text_ik" indexed="true" stored="false" />
    <field name="item_keywords" type="text_ik" indexed="true" stored="false" multiValued="true"/>
    <copyField source="item_title" dest="item_keywords"/>
    <copyField source="item_sell_point" dest="item_keywords"/>
    <copyField source="item_category_name" dest="item_keywords"/>
    <copyField source="item_desc" dest="item_keywords"/>
           

field的定义相当重要,有几点需要注意的地方:

对可能存在多值的情况需要设置multiValued=”true”,否则会报错;

如果不需要存储相应的字段值,尽量stored属性设置为false;

建议建立一个拷贝字段,将所有的全文复制到一个字段,以便进行统一的检索,如上述的item_keywords字段;

详细的字段设置可以参考:https://wiki.apache.org/solr/SchemaXml;

14、维护索引库

添加:添加一个json格式的文件就可以。

修改:在solr中没有update,只需要添加一个新的文档,要求文档id和被修改文档的id一致。原理是先删除后添加。

删除:使用xml格式。

删除两种方法:

1、根据id删除:

<delete>
<id>test001</id>
</delete>
<commit/>
           

2、根据查询删除:

<delete>
<query>*:*</query>
</delete>
<commit/>
           

继续阅读