java添加solr多值_[Solr]业务字段配置以及java操作Solr

本文介绍了如何在Solr中配置业务字段,并通过Java的Solrj库进行增删查操作。首先在schema.xml中添加字段配置,然后在Java项目中创建Maven工程,引入Solrj依赖。接着编写测试类,展示如何添加、删除和查询(含高亮)Solr中的数据。最后展示了操作的效果。
摘要由CSDN通过智能技术生成

一 、业务字段配置

vim solrhome/collection1/conf/schema.xml

添加如下配置

8590a0a12a92

业务字段配置

商品信息格式

8590a0a12a92

image.png

重启tomcat

查询测试(高亮)

8590a0a12a92

查询测试

二 、java通过Solrj操作solr

1. 创建maven工程 (pom.xml)

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

4.0.0

com.jiazf.demo

solrdemo

0.0.1-SNAPSHOT

org.apache.solr

solr-solrj

4.10.4

junit

junit

4.12

test

commons-logging

commons-logging

1.2

2. 创建java测试类

package mytest;

import org.apache.solr.client.solrj.SolrQuery;

import org.apache.solr.client.solrj.SolrServer;

import org.apache.solr.client.solrj.SolrServerException;

import org.apache.solr.client.solrj.impl.HttpSolrServer;

import org.apache.solr.client.solrj.response.QueryResponse;

import org.apache.solr.common.SolrDocument;

import org.apache.solr.common.SolrDocumentList;

import org.apache.solr.common.SolrInputDocument;

import org.junit.Test;

import java.io.IOException;

import java.util.List;

import java.util.Map;

public class SolrjTest {

//创建一个连接

SolrServer solrServer = new HttpSolrServer("http://192.168.153.22:8080/solr");

@Test

/**

* 增加操作

*/

public void addItem() throws IOException, SolrServerException {

//创建一个文档对象

SolrInputDocument document = new SolrInputDocument();

document.addField("id", "test001");

document.addField("item_title", "测试title");

document.addField("item_sell_point", "测试");

document.addField("item_price", "11111");

document.addField("item_image", "111111");

document.addField("item_category_name", "111111");

//将item添加到solr的服务器中

solrServer.add(document);

solrServer.commit();

}

@Test

/**

* 删除操作

*/

public void deleteItem() throws IOException, SolrServerException {

solrServer.deleteByQuery("id:test001");

solrServer.commit();

}

@Test

/**

* 查询 "三星" 关键字

*/

public void paginatedQuery() throws Exception {

int page = 8;

int size = 5;

// 创建一个查询对象

SolrQuery query = new SolrQuery();

// 设置查询条件

query.setQuery("三星");

//设置开始条目数字

query.setStart((page - 1) * size);

//设置每页显示多少条记录

query.setRows(size);

//设置是否使用高亮

query.setHighlight(true);

//高亮的前置字符串

query.setHighlightSimplePre("");

//高亮的后置字符串

query.setHighlightSimplePost("");

//设置默认字段用于搜索

query.set("df", "item_title");

//设置添加高亮的字段

query.addHighlightField("item_title");

// 根据查询条件查询索引库

QueryResponse queryResponse = solrServer.query(query);

// 取查询结果

SolrDocumentList solrDocumentList = queryResponse.getResults();

// 取查询结果总数量

System.out.println(solrDocumentList.getNumFound());

// 取高亮显示

Map>> highlighting = queryResponse.getHighlighting();

// 取商品列表

for (SolrDocument solrDocument : solrDocumentList) {

System.out.println(solrDocument.get("id"));

// 取高亮显示的结果

List list = highlighting.get(solrDocument.get("id")).get("item_title");

String title = "";

if (list != null && list.size() > 0) {

title = list.get(0);

} else {

title = (String) solrDocument.get("item_title");

}

System.out.println(title);

System.out.println(solrDocument.get("item_image"));

System.out.println(solrDocument.get("item_price"));

System.out.println(solrDocument.get("item_sell_point"));

System.out.println(solrDocument.get("item_category_name"));

System.out.println("=======================================");

}

}

}

3. 效果

插入效果

8590a0a12a92

item插入

删除效果

8590a0a12a92

删除效果

查询效果

8590a0a12a92

查询效果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值