solr搜索

安装过程:

  原料: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。

[[email protected] ~]# ll

total 8044

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

[[email protected] ~]# tar -zxf apache-tomcat-7.0.47.tar.gz

[[email protected] ~]# 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

[[email protected] ~]# mkdir /usr/local/solr

[[email protected] ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat

cp: omitting directory `apache-tomcat-7.0.47‘

[[email protected] ~]# cp apache-tomcat-7.0.47 /usr/local/solr/tomcat -r

[[email protected] ~]# cd /usr/local/solr/

[[email protected] solr]# ll

total 4

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

[[email protected] solr]#

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

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

[[email protected] 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工程中。

[[email protected] ext]# cp * /usr/local/solr/tomcat/webapps/solr/WEB-INF/lib/

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

[[email protected] example]# pwd

/root/solr-4.10.3/example

[[email protected] example]# cp -r solr /usr/local/solr/solrhome

[[email protected] 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工程中。

[[email protected] 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

[[email protected] 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/>

时间: 2024-10-12 10:51:08

solr搜索的相关文章

Solr搜索技术

Solr搜索技术 今日大纲 回顾上一天的内容: 倒排索引 lucene和solr的关系 lucene api的使用 CRUD 文档.字段.目录对象(类).索引写入器类.索引写入器配置类.IK分词器 查询解析器.查询对象(用户要查询的内容).索引搜索器(索引库的物理位置).排名文档集合(包含得分文档数组) 六种高级查询(相似度查询) 分词器(扩展词典.停用词典) 分页 得分(激励因子(作弊)) 高亮 排序 ●    Solr简介.运行 ●    Solr基本使用 ●    Solr Core 配置

Solr搜索结果说明 (转)

在admin页面,输入相关内容后,会返回xml格式的内容.说明如下: <?xml version="1.0" encoding="UTF-8"?> <response> <lst name="responseHeader"> <int name="status">0</int> <int name="QTime">3</int&g

JAVA环境下利用solrj二次开发SOlR搜索的环境部署常见错误

问题一:出现控制台坏的响应错误一Bad request 控制台出现错误如下: Bad Request request: http://hostIP:8983/solr/update?wt=javabin&version=1 解决方法: 出现以上错误的原因是,solr服务器上配置的Field和javabean提交的Field不能对应, 导致solr服务器找不到域,拒绝访问. 打开SOLR_HOME下的conf文件夹找到schema.xml文件,在其中添加对应的域. 例如以下代码添加了:title,

solr搜索之tomcat运行solr(五)

1      tomcat上运行solr 准备环境: apache-tomcat-7.0.77.zip, solr-4.10.2.zip, java version:1.7 下载tomcat:http://tomcat.apache.org/ 下载solr:http://lucene.apache.org/solr/ or  http://www.apache.org/dyn/closer.cgi/lucene/solr/ ====================================

solr搜索流程

一.solr搜索流程介绍 1. 前面我们已经学习过Lucene搜索的流程,让我们再来回顾一下 流程说明: 首先获取用户输入的查询串,使用查询解析器QueryParser解析查询串生成查询对象Query,使用所有搜索器IndexSearcher执行查询对象Query得到TopDocs,遍历TopDocs得到文档Document 2. Solr搜索的工作流程: 流程说明: 用户输入查询字符串,根据用户的请求类型qt(查询为/select)选择请求处理器RequestHandler,根据用户输入的参数

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

问题:就是把从solr搜索出来的结果转成我们想要的实体类对象,很常用的情景. 1.使用@Field注解 @Field这个注解放到实体类的属性[字段]中,例如下面 1 public class User{ 2 /** 3 * id 4 */ 5 @Field 6 private String id; 7 /** 8 * 用户名 9 */ 10 @Field 11 private String userName; 12 /** 13 * 密码 14 */ 15 @Field 16 private S

解决solr搜索多词匹配度和排序方案

转载请标明出处:http://blog.csdn.net/hu948162999/article/details/47727159 本文主要介绍了在短语.句子.多词查询中,solr在控制查询命中数量.之后再对结果集进行排序. 在solr中 默认是or 查询,也就是说:如果搜索q 中 分出来的词越多,所匹配的数量也就越多.如:搜索短语  "中国联想笔记本" ,分词结果:中国 .联想 . 笔记本. 覆盖结果集:只要文档中包含这3个任意词,都给返回. 排序结果:按照solr的打分公式.默认匹

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

摘要:在中文搜索中的标点.符号往往也是有语义的,比如我们要搜索“C++”或是“C#”,我们不希望搜索出来的全是“C”吧?那样对程序员来说是个噩梦.然而在中文分词工具mmseg中,它的中文分词是将标点与符号均去除的,它认为对于中文来讲标点符号无意义,这明显不能满足我们的需求.那么怎样改造它让它符合我们的要求呢?本文就是针对这一问题的详细解决办法,我们改mmseg的源代码. 关键字:Solr, mmseg, 中文, 分词, 标点, 符号, 语义 前提:Solr(5.0.0版本),mmseg4j(1.

Solr 搜索的过程和所须要的參数

一个典型的搜索处理过程,以及所须要的參数例如以下: qt:指定一个RequestHandler,即/select.缺省是使用DisMax RequestHandler defType:选择一个query parser.缺省是RequestHandler中配置的那个 qf:指定须要搜索的field.假设不指定就搜索全部的field start, rows:指明分页參数 fq:指明须要怎样过滤搜索结果.以及缓存搜索结果 wt:指定搜索结果的格式,比方json或xml 搜索所须要的參数基本上能够分为三