<!--[if !supportLists]-->1.<!--[endif]-->在solr配置完毕后,进行solrj的增删改查操作。
D:\solr\home\collection1\conf\schema.xml(自己的目录)
注意:由于schema.xml中的uniqueKey为id,所以操作任何对象需要有id,否则报错
添加
<!--[if !supportLists]-->1.<!--[endif]-->添加单个字段:
private static final String SOLR_URL = "http://localhost:8080/solr/";
@Test
public void addIndex() {
SolrServer solrServer = new HttpSolrServer(SOLR_URL);
SolrInputDocument document = new SolrInputDocument();
/*
* 添加单个字段
* /
document.addField("id", "1234");
document.addField("title", "软件交流会");
try {
solrServer.add(document);
solrServer.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.getMessage();
}
<!--[if !supportLists]-->2.<!--[endif]-->添加javabean对象
private static final String SOLR_URL = "http://localhost:8080/solr/";
@Test
public void addIndex() {
Product product = new Product();
product.setId(1001);
product.setName("eclipse");
product.setPrice(1000);
product.setDesc("开发工具");
SolrServer solrServer = new HttpSolrServer(SOLR_URL);
SolrInputDocument document = new SolrInputDocument();
/**
* 添加javabean对象
*/
try {
solrServer.addBean(product);
solrServer.commit();
} catch (IOException e) {
e.getMessage();
} catch (SolrServerException e) {
e.getMessage();
}
}
将server提取
private static final String SOLR_URL = "http://localhost:8080/solr/";
private SolrServer solrServer ;
@Before
public void before() {
solrServer = new HttpSolrServer(SOLR_URL);
}
/**
* 提交与释放资源
*/
@After
public void after() {
try {
solrServer.commit();
solrServer = null;
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
删除
/**
* 删除,通过上面的id进行删除
*/
@Test
public void deleteIndex() {
//SolrServer server = new HttpSolrServer(SOLR_URL);
try {
solrServer.deleteById("1012");
//server.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
修改
/**
* 修改
*/
@Test
public void updateIndex() {
Product product = new Product();
product.setId(1013);
product.setPrice(20000);
product.setDesc("特价处理");
try {
solrServer.addBean(product);
} catch (IOException e) {
e.printStackTrace();
} catch (SolrServerException e) {
e.printStackTrace();
}
}
查询
/**
* 查询
* @throws Exception
*/
@Test
public void query() throws Exception {
SolrQuery query = new SolrQuery();
query.setQuery("name:springtoolsuite");//设置查询条件,参考页面中的q
QueryResponse response = solrServer.query(query);
SolrDocumentList results = response.getResults();//查询获取结果集
//遍历获取集合中的每个数据
for (SolrDocument solrDocument : results) {
System.out.println(solrDocument.getFieldValue("name"));
System.out.println(solrDocument.getFieldValue("price"));
}
}
高亮查询
/**
* 高亮查询
* @throws Exception
*/
@Test
public void highLightQuery() throws Exception {
SolrQuery solrQuery = new SolrQuery();
solrQuery.setHighlight(true);//开启高亮
solrQuery.setHighlightSimplePre("<font color='red'>");//设置高亮字段的前缀(标记)
solrQuery.setHighlightSimplePost("</font>");
solrQuery.setQuery("name:springtoolsuite");
QueryResponse queryResponse = solrServer.query(solrQuery);//查询响应
//SolrDocumentList list = queryResponse.getResults();
Map<String, Map<String, List<String>>> map = queryResponse.getHighlighting();
System.out.println(map.entrySet());
for (Map.Entry<String, Map<String, List<String>>> entry : map.entrySet()) {
for(Map.Entry<String, List<String>> value : entry.getValue().entrySet()) {
System.out.println(value.getKey());
for(String str : value.getValue()) {
System.out.println(str);
}
}
}
}
相关推荐
1. **索引管理**:创建、更新和删除索引文档,使Java应用能够方便地将数据推送到Solr。 2. **查询操作**:执行各种查询,包括基本查询、复杂查询以及分页、排序等操作。 3. **结果处理**:获取查询结果,包括原始...
Solr-Solrj是专门为Java开发者设计的,它简化了与Solr服务器通信的过程,允许开发者通过Java API轻松地发送HTTP请求,执行索引操作、查询、更新和管理Solr核心。 在5.0.0版本中,Solr-Solrj引入了许多改进和新特性...
这个“solrj使用教程”很可能是为了帮助开发者了解如何使用SolrJ来连接、查询和管理Solr索引。下面将详细介绍SolrJ的主要功能和使用方法。 **1. 安装和导入** 首先,你需要通过Maven或Gradle等构建工具将SolrJ库...
4. **更新与删除**:Solr支持对已有文档的更新和删除,这涉及到索引的实时维护,确保查询结果的准确性。 三、Solr工具 1. **Solr Admin UI**:官方提供的Web管理界面,可以方便地进行索引管理、查询测试、配置修改...
- **4.2.1 AddingData to Solr**:如何使用Solrj添加数据到索引。 - **4.2.2 Directly adding POJOs to Solr**:如何直接将Java对象转换为Solr文档。 - **4.2.3 Reading Data from Solr**:如何从Solr检索数据。 ##...
SolrJ是Solr的Java客户端库,用于与Solr服务器进行交互,包括创建、更新、删除索引和执行查询。在DEMO中,你会看到如何使用SolrJ连接到Solr服务器,创建`SolrServer`对象,以及如何使用`SolrInputDocument`来添加、...
通过SolrJ可以方便地执行索引文档、查询文档等操作。 #### 三、Solr创建索引流程 1. **建立SolrServer连接** - 使用`CommonsHttpSolrServer`类创建Solr服务器连接。 - 设置必要的参数,如URL、超时时间、最大连接...
这个"Sample-SolrJ-Client"是一个示例项目,旨在帮助开发者了解如何有效地使用 SolrJ 进行索引、查询和其他操作。以下将详细阐述 SolrJ 的核心概念、功能及其在实际开发中的应用。 1. **SolrJ 简介** SolrJ 是 ...
如果正确实现了分词,用户可以看到查询结果中对应的中文词汇被高亮显示,证明了Solr已经成功地对中文文本进行了分词索引。 在实际应用中,我们还需要考虑性能优化,例如利用Solr的分布式特性进行水平扩展,或者通过...
SolrJ是Apache Solr官方提供的Java客户端库,它允许开发人员方便地与Solr服务器进行交互,包括索引数据、执行查询、处理结果等操作。下面将详细介绍这个示例代码可能涉及的几个关键知识点。 1. **Apache Solr**:...
SolrJ是Apache Solr官方提供的Java客户端库,主要用于与Solr服务器进行交互,包括索引数据、查询、管理Solr核心等操作。这个库极大地简化了开发人员在Java环境中与Solr通信的过程,使得我们可以方便地在应用程序中...
Solr查询索引是Apache Solr的核心功能之一,它是一个基于Lucene的开源搜索服务器,提供了高效的全文检索、文档分类和聚类、拼写检查、高亮显示搜索结果等多种功能。在本文中,我们将深入探讨如何使用Solr进行索引...
Solrj简化了Solr的集成工作,例如在Java应用中添加或更新文档,以及执行复杂的搜索查询。 【Solr】 Solr是基于Lucene的全文搜索引擎服务器,它提供了一个分布式、可扩展、高可用性的搜索和分析平台。Solr能够处理...
Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之高亮显示第19讲 solr之MoreLike...
Solrj使得在Java应用程序中集成Solr变得简单,通过API可以方便地进行文档的添加、删除和更新操作。 案例分析部分通常会涵盖以下几个方面: 1. **部署与配置**:如何设置Solr服务器,包括下载、解压、启动和配置...
9、通过Solrj实现索引的添加更新 10、通过Solrj实现索引的删除 11、索引的检索_过滤_高亮等操作 12、项目实战应用 13、Solr知识点总结 14、ElasticSearch下载安装(window以及linux下安装) 15、集群环境搭建 16、...
8、通过Solrj实现索引的添加更新 9、通过Solrj实现索引的删除 10、索引的检索_过滤_高亮等操作 11、项目实战应用 12、Solr知识点总结 1、熟练掌握Lucene框架的使用,实现类似百度、京东商城等应用的全文检索...
Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之高亮显示第19讲 solr之MoreLike...
Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之高亮显示第19讲 solr之MoreLike...