solr

solr是什么

Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器。
solr可以独立运行,运行在Jetty、Tomcat等这些Servlet容器中。

solr原理

Solr对外提供标准的http接口来实现对数据的索引的增加、删除、修改、查询。
在 Solr 中,用户通过向部署在servlet 容器中的 Solr Web 应用程序发送 HTTP 请求来启动索引和搜索。Solr 接受请求,确定要使用的适当SolrRequestHandler,然后处理请求。通过 HTTP 以同样的方式返回响应。默认配置返回 Solr 的标准 XML 响应,也可以配置 Solr 的备用响应格式。

Solr的安装与配置

安装

  • Jdk
  • Solr
  • Tomcat

配置

/usr/local/solr/tomcat

  • Solr整合tomcat
    1. 将dist\solr-4.10.3.war拷贝到Tomcat的webapp目录下改名为solr.war
    2. 启动tomcat后,solr.war自动解压,将原来的solr.war删除。
    3. 拷贝example\lib\ext 目录下所有jar包到Tomcat的webapp\solr\WEB-INF\lib目录下
    4. 创建solrhome
[root@localhost example]# cp -r solr /usr/local/solr/solrhome
  1. 修改Tomcat目录 下webapp\solr\WEB-INF\web.xml文件,如下所示:
    设置Solr home:
    <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>

安装中文分词器

配置IKAnalyzer的jar包

将IKAnalyzer2012FF_u1.jar拷贝到 Tomcat的webapps/solr/WEB-INF/lib 下

IKAnalyzer的配置文件

在Tomcat的webapps/solr/WEB-INF/下创建classes目录
将IKAnalyzer.cfg.xml、ext_stopword.dic mydict.dic copy到 Tomcat的
webapps/solr/WEB-INF/classes

修改schema.xml文件

修改Solr的schema.xml文件,添加FieldType:

/solrhome/collection1/conf/schema.xml
<fieldType name="text_ik" class="solr.TextField">
  <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>

设置业务系统Field

<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"/>

Dashboard操作

打开链接 http://192.168.176.102:8080/solr/#/

solr-dashboard.png

推荐阅读更多精彩内容