安装过程:

  原料:solr-4.10.3.tgz.tgz

  

1.1.1 安装步骤

单独一台虚拟机先全部删除:根目录:rm * -rf

            cd /usr/local   \  rm solr* -rf

把tomcat拷贝到solr下:

Mkdir /usr/local/solr     Cp tomcat /usr/local/solr/tomcat -r

需要把solr服务器安装到linux环境:

第一步:安装linux、jdk、tomcat。

[root@bogon ~]# ll

total 8044

-rw-r--r--. 1 root root 8234674 Oct 27  2013 apache-tomcat-7.0.47.tar.gz

[root@bogon ~]# tar -zxf apache-tomcat-7.0.47.tar.gz

[root@bogon ~]# ll

total 8048

drwxr-xr-x. 9 root root    4096 Sep 10 17:55 apache-tomcat-7.0.47

-rw-r--r--. 1 root root 8234674 Oct 27  2013 apache-tomcat-7.0.47.tar.gz

[root@bogon ~]# mkdir /usr/local/solr

[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat

cp: omitting directory `apache-tomcat-7.0.47'

[root@bogon ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r

[root@bogon ~]# cd /usr/local/solr/

[root@bogon solr]# ll

total 4

drwxr-xr-x. 9 root root 4096 Sep 10 17:56 tomcat

[root@bogon solr]#

第二步:把solr的压缩包上传到服务器。并解压。tar -zxf solr-4.tgz.tgz

第三步:把/root/solr-4.10.3/dist/solr-4.10.3.war包部署到tomcat下。并改名为solr.war

[root@bogon dist]# cp solr-4.10.3.war /usr/local/solr/tomcat/webapps/solr.war

第四步:解压war包。启动tomcat自动解压。关闭tomcat。删除solr.war.

cd tomcat 、 bin/startup.sh  [tomcat]# bin/shutdown.sh

cd webapps 、 rm -f solr.war

第五步:把/root/solr-4.10.3/example/lib/ext 目录下所有的jar包复制到solr工程中。

[root@bogon ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

第六步:创建solrhome。Solrhome是存放solr服务器所有配置文件的目录。

[root@bogon example]# pwd

/root/solr-4.10.3/example

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

[root@bogon example]#

第七步:告诉solr服务器solrhome的位置。

cd tomcat/webapps/solr/web-inf的web.xml文件

需要修改solr工程的web.xml文件。

第八步:启动tomcat

Tall -f togs/catalina.out

1.1.1 配置业务字段

1、在solr中默认是没有中文分析器,需要手工配置。配置一个FieldType,在FieldType中指定中文分析器。

2、Solr中的字段必须是先定义后使用。

1.1.1.1 中文分析器的配置

第一步:使用IK-Analyzer。把分析器的文件夹(ak-analizer)上传到服务器。

第二步:需要把分析器的jar包添加到solr工程中。

[root@bogon IK Analyzer 2012FF_hf1]# cp IKAnalyzer2012FF_u1.jar /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

第三步:需要把IKAnalyzer需要的扩展词典及停用词词典、配置文件复制到solr工程的classpath。(新建mkdir classes)

/usr/local/solr/tomcat/webapps/solr/WEB-INF/classes

[root@bogon IK Analyzer 2012FF_hf1]# cp IKAnalyzer.cfg.xml ext_stopword.dic mydict.dic /usr/local/solr/tomcat/webapps/solr/WEB-INF/classes

注意:扩展词典及停用词词典的字符集必须是utf-8。不能使用windows记事本编辑。

第四步:配置fieldType。需要在solrhome/collection1/conf/schema.xml中配置。

[solr]# vim solr/home/collection/conf/schema.xml

技巧:使用vi、vim跳转到文档开头gg。跳转到文档末尾:G

在开头或末尾添加以下东西

<fieldType name="text_ik" class="solr.TextField">

<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>

</fieldType>

1.1.1.1 业务字段配置

业务字段判断标准:

1、在搜索时是否需要在此字段上进行搜索。例如:商品名称、商品的卖点、商品的描述

2、后续的业务是否需要用到此字段。例如:商品id。

需要用到的字段:

1、商品id

2、商品title

3、卖点

4、价格

5、商品图片

6、商品分类名称

7、商品描述

Solr中的业务字段:

1、id—对应—》商品id

其他的对应字段创建solr的字段。

把下面这些复制到fieldType下

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

重新启动tomcat

1.1 维护索引库

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

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

删除:使用xml格式。

删除两种方法:

1、根据id删除:也是在document

<delete>(xml格式)

<id>test001</id>

</delete>

并且<commit/>

2、根据查询删除:

<delete>

<query>*:*</query>

</delete>

<commit/>

solr搜索的更多相关文章

  1. 关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造)

    关于Solr搜索标点与符号的中文分词你必须知道的(mmseg源码改造) 摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程 ...

  2. 什么是Solr搜索

    什么是Solr搜索 一.Solr综述   什么是Solr搜索 我们经常会用到搜索功能,所以也比较熟悉,这里就简单的介绍一下搜索的原理. 当然只是介绍solr的原理,并不是搜索引擎的原理,那会更复杂. ...

  3. Solr搜索技术

    Solr搜索技术 今日大纲 回顾上一天的内容: 倒排索引 lucene和solr的关系 lucene api的使用 CRUD 文档.字段.目录对象(类).索引写入器类.索引写入器配置类.IK分词器 查 ...

  4. Solr系列五:solr搜索详解(solr搜索流程介绍、查询语法及解析器详解)

    一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query ...

  5. solr搜索应用

    非票商品搜索,为了不模糊查询影响数据库的性能,搭建了solr搜索应用,php从solr读取数据

  6. solr搜索结果转实体类对象的两种方法

    问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 public class User{ ...

  7. spring data solr 搜索关键字高亮显示

    spring data solr 搜索关键字高亮显示 public Map<String, Object> highSearch(Map searchMap) { Map map = ne ...

  8. Solr搜索基础

    本例我们使用类库和代码均来自: http://www.cnblogs.com/TerryLiang/archive/2011/04/17/2018962.html 使用C#来模拟搜索.索引建立.删除. ...

  9. 一个Solr搜索实例,增删改查+高亮+分页

    今天个人coding的模块测试,所以闲暇之余继续研究solr,然后顺带写了一个实例,随便搞的,solr真心不熟,期待认识热爱搜索的朋友,共同进步. 1.配置schema.xml文件[solr\coll ...

  10. Solr搜索结果说明

    在admin页面,输入相关内容后,会返回xml格式的内容.说明如下: [html] view plaincopy <?xml version="1.0" encoding=& ...

随机推荐

  1. wpf-x命名空间-Markup Extension(标记扩展)

    1.x:type 用于前端类型声明 与C#  代码 Type类似 2.x:Null 代表Null 某些时候需要显示的为一些值设置为空   前端为 x:Null   C# 中 为 Null 3.x:ar ...

  2. Ubuntu 远程使用ssh 开启服务器终端的方法

    首先,加载服务器环境变量$DISPLAY,需要先从服务器获取值 echo $DISPLAY 假如返回值为1001,本地通过sshpass启动终端,假设服务器用户名server,密码passwd, ip ...

  3. 当git上文件名大小写重命名的修改时(git大小写敏感/默认不敏感),如何重命名并提交

    git默认是大小写不敏感!!! 加了感叹号是什么意思呢,意思就是这本身就是一个坑,本人使用的IDE是idea(网上说Eclipse可以避开问题),这个IDE本身就集成了git,但是如果要在termin ...

  4. 3.5 unittest生成测试报告HTMLTestRunner

    3.5 unittest生成测试报告HTMLTestRunner 前言批量执行完用例后,生成的测试报告是文本形式的,不够直观,为了更好的展示测试报告,最好是生成HTML格式的.unittest里面是不 ...

  5. Python学习之路基础篇--02Python基础+小作业

    1 变量 变量就是将一些运算的中间结果暂存到内存中,以便后续代码调用.必须由数字,字母,下划线任意组合,且不能数字开头.不能是python中的关键字,如['and', 'as', 'assert', ...

  6. css布局与文档流的关系之float(浮动)

    所谓文档流,指元素在排版布局的过程中,元素会自动从左到右,从上到下的流式排列.脱离文档流呢,就是元素打乱了这个排列,或是从排版中拿走. 说到文档流呢,我们先来说一下元素,每个元素呢,都有display ...

  7. JVM垃圾回收算法解析

    JVM垃圾回收算法解析 标记-清除算法 该算法为最基础的算法.它分为标记和清除两个阶段,首先标记出需要回收的对象,在标记结束后,统一回收.该算法存在两个问题:一是效率问题,标记和清除过程效率都不太高, ...

  8. JavaEE思维导图

  9. hdu 1754 I Hate It (单点修改+区间最值+裸题)

    Time Limit: 9000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Submission(s) ...

  10. 2018.4.26 lvm

    lvm(Logical Volume Manager)逻辑卷管理,是Linux环境下对磁盘分区进行管理的一种机制. 基本概念: 1. 物理卷-----PV(Physical Volume)物理卷在逻辑 ...