Solr单机版搭建Word下载.docx

上传人:b****3 文档编号:17872667 上传时间:2022-12-11 格式:DOCX 页数:13 大小:217.43KB
下载 相关 举报
Solr单机版搭建Word下载.docx_第1页
第1页 / 共13页
Solr单机版搭建Word下载.docx_第2页
第2页 / 共13页
Solr单机版搭建Word下载.docx_第3页
第3页 / 共13页
Solr单机版搭建Word下载.docx_第4页
第4页 / 共13页
Solr单机版搭建Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

Solr单机版搭建Word下载.docx

《Solr单机版搭建Word下载.docx》由会员分享,可在线阅读,更多相关《Solr单机版搭建Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

Solr单机版搭建Word下载.docx

[root@localhostexample]#

第八步:

关联solr及solrhome。

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

第九步:

启动Tomcat

http:

//192.168.25.154:

8080/solr/

和windows下的配置完全一样。

1.1.3.Solr的使用

添加文档必须有id域,其他域必须在solr的schema.xml中定义。

1.2.配置业务域

schema.xml中定义

1、商品Id

2、商品标题

3、商品卖点

4、商品价格

5、商品图片

6、分类名称

7、商品描述

创建对应的业务域。

需要制定中文分析器。

创建步骤:

把中文分析器添加到工程中。

1、把IKAnalyzer2012FF_u1.jar添加到solr工程的lib目录下

2、把扩展词典、配置文件放到solr工程的WEB-INF/classes目录下。

配置一个FieldType,制定使用IKAnalyzer

修改schema.xml文件

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

<

fieldTypename="

text_ik"

class="

solr.TextField"

>

analyzerclass="

org.wltea.analyzer.lucene.IKAnalyzer"

/>

/fieldType>

配置业务域,type制定使用自定义的FieldType。

设置业务系统Field

fieldname="

item_title"

type="

indexed="

true"

stored="

item_sell_point"

item_price"

long"

item_image"

string"

false"

/>

item_category_name"

item_desc"

item_keywords"

multiValued="

copyFieldsource="

dest="

重启tomcat

1.3.搜索服务工程搭建

可以参考xinda-manager创建。

Xinda-search(聚合工程pom)

|--xinda-search-interface(jar)

|--xinda-search-Service(war)

2.使用solrJ管理索引库

使用SolrJ可以实现索引库的增删改查操作。

2.1.添加文档

把solrJ的jar包添加到工程中。

创建一个SolrServer,使用HttpSolrServer创建对象。

创建一个文档对象SolrInputDocument对象。

向文档中添加域。

必须有id域,域的名称必须在schema.xml中定义。

把文档添加到索引库中。

提交。

@Test

publicvoidaddDocument()throwsException{

//第一步:

//第二步:

SolrServersolrServer=newHttpSolrServer("

8080/solr"

);

//第三步:

SolrInputDocumentdocument=newSolrInputDocument();

//第四步:

document.addField("

id"

"

test001"

测试商品"

199"

//第五步:

solrServer.add(document);

//第六步:

solrSmit();

}

2.2.删除文档

2.2.1.根据id删除

创建一个SolrServer对象。

调用SolrServer对象的根据id删除的方法。

publicvoiddeleteDocumentById()throwsException{

solrServer.deleteById("

1"

2.2.2.根据查询删除

publicvoiddeleteDocumentByQuery()throwsException{

solrServer.deleteByQuery("

title:

change.me"

2.3.查询索引库

查询步骤:

创建一个SolrServer对象

创建一个SolrQuery对象。

向SolrQuery中添加查询条件、过滤条件。

执行查询。

得到一个Response对象。

取查询结果。

遍历结果并打印。

2.3.1.简单查询

publicvoidqueryDocument()throwsException{

SolrQueryquery=newSolrQuery();

query.setQuery("

*:

*"

QueryResponseresponse=solrServer.query(query);

SolrDocumentListsolrDocumentList=response.getResults();

System.out.println("

查询结果的总记录数:

"

+solrDocumentList.getNumFound());

for(SolrDocumentsolrDocument:

solrDocumentList){

System.out.println(solrDocument.get("

));

}

2.3.2.带高亮显示

publicvoidqueryDocumentWithHighLighting()throwsException{

测试"

//指定默认搜索域

query.set("

df"

//开启高亮显示

query.setHighlight(true);

//高亮显示的域

query.addHighlightField("

query.setHighlightSimplePre("

em>

query.setHighlightSimplePost("

/em>

//取高亮显示

Map<

String,Map<

String,List<

String>

highlighting=response.getHighlighting();

List<

list=highlighting.get(solrDocument.get("

)).get("

StringitemTitle=null;

if(list!

=null&

&

list.size()>

0){

itemTitle=list.get(0);

}else{

itemTitle=(String)solrDocument.get("

}

System.out.println(itemTitle);

3.把商品数据导入到索引库中

3.1.功能分析

8、商品Id

9、商品标题

10、商品卖点

11、商品价格

12、商品图片

13、分类名称

14、商品描述

需要从tb_item,tb_item_cat,tb_item_desc表中查询数据。

Sql1:

SELECT

a.id,

a.title,

a.sell_point,

a.price,

a.image,

b.NAMEcategory_name,

c.item_desc

FROM

tb_itema,

tb_item_catb,

tb_item_descc

WHERE

a.cid=b.id

ANDa.id=c.item_id

ANDa.`status`=1;

Sql2:

tb_itema

JOINtb_item_catbONa.cid=b.id

JOINtb_item_desccONa.id=c.item_id

a.`status`=1

参数:

业务逻辑:

taotao-search中实现

1、查询所有商品数据。

2、创建一个SolrServer对象。

3、为每个商品创建一个SolrInputDocument对象。

4、为文档添加域

5、向索引库中添加文档。

6、返回TaotaoResult。

在taotao-manager-web中调用服务。

实现数据导入功能。

3.2.Dao层

返回一个pojo对应查询的sql语句。

publicclassSearchItemimplementsSerializable{

privateStringid;

privateStringtitle;

privateStringsell_point;

privatelongprice;

privateStringimage;

privateStringcategory_name;

privateStringitem_desc;

}

放到taotao-common中。

接口的返回值:

List<

SearchItem>

接口定义:

publicinterfaceSearchItemMapper{

List<

getItemList();

Mapper映射文件:

?

xmlversion="

1.0"

encoding="

UTF-8"

!

DOCTYPEmapperPUBLIC"

-//mybatis.org//DTDMapper3.0//EN"

//mybatis.org/dtd/mybatis-3-mapper.dtd"

mappernamespace="

com.taotao.search.mapper.SearchItemMapper"

<

selectid="

getItemList"

resultType="

mon.pojo.SearchItem"

SELECT

a.id,

a.title,

a.sell_point,

a.price,

a.image,

b.NAMEcategory_name,

c.item_desc

FROM

tb_itema

JOINtb_item_catbONa.cid=b.id

JOINtb_item_desccONa.id=c.item_id

WHERE

a.status=1

/select>

/mapper>

3.3.Service层

在applicationContext-solr.xml中配置SolrServer对象。

@Service

publicclassSearchItemServiceImplimplementsSearchItemService{

@Autowired

privateSearchItemMappersearchItemMapper;

privateSolrServersolrServer;

@Override

publicTaotaoResultimportAllItems()throwsException{

//1、查询所有商品数据。

List<

itemList=searchItemMapper.getItemList();

//2、创建一个SolrServer对象。

//3、为每个商品创建一个SolrInputDocument对象。

for(SearchItemsearchItem:

itemList){

SolrInputDocumentdocument=newSolrInputDocument();

//4、为文档添加域

document.addField("

searchItem.getId());

searchItem.getTitle());

searchItem.getSell_point());

searchItem.getPrice());

searchItem.getImage());

searchItem.getCategory_name());

searchItem.getItem_desc());

//5、向索引库中添加文档。

solrServer.add(document);

//提交修改

//6、返回TaotaoResult。

returnTaotaoResult.ok();

3.3.1.发布服务

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 教育学心理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1