`

solrj的对索引的添加、删除、更新、(高亮)查询

    博客分类:
  • solr
阅读更多

<!--[if !supportLists]-->1.<!--[endif]-->solr配置完毕后,进行solrj的增删改查操作。

 

D:\solr\home\collection1\conf\schema.xml(自己的目录)

注意:由于schema.xml中的uniqueKeyid,所以操作任何对象需要有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);

}

}

}

 

}

  • 大小: 24.9 KB
分享到:
评论

相关推荐

    solr-solrj-6.1.0

    1. **索引管理**:创建、更新和删除索引文档,使Java应用能够方便地将数据推送到Solr。 2. **查询操作**:执行各种查询,包括基本查询、复杂查询以及分页、排序等操作。 3. **结果处理**:获取查询结果,包括原始...

    solr-solrj 5.0.0 demo

    Solr-Solrj是专门为Java开发者设计的,它简化了与Solr服务器通信的过程,允许开发者通过Java API轻松地发送HTTP请求,执行索引操作、查询、更新和管理Solr核心。 在5.0.0版本中,Solr-Solrj引入了许多改进和新特性...

    solrj使用教程

    这个“solrj使用教程”很可能是为了帮助开发者了解如何使用SolrJ来连接、查询和管理Solr索引。下面将详细介绍SolrJ的主要功能和使用方法。 **1. 安装和导入** 首先,你需要通过Maven或Gradle等构建工具将SolrJ库...

    Solr 查询,索引

    4. **更新与删除**:Solr支持对已有文档的更新和删除,这涉及到索引的实时维护,确保查询结果的准确性。 三、Solr工具 1. **Solr Admin UI**:官方提供的Web管理界面,可以方便地进行索引管理、查询测试、配置修改...

    Solrj 中文教程

    - **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检索数据。 ##...

    solr-config_solrj-demo.rar_DEMO_solr_solr的j

    SolrJ是Solr的Java客户端库,用于与Solr服务器进行交互,包括创建、更新、删除索引和执行查询。在DEMO中,你会看到如何使用SolrJ连接到Solr服务器,创建`SolrServer`对象,以及如何使用`SolrInputDocument`来添加、...

    solr创建索引并查询

    通过SolrJ可以方便地执行索引文档、查询文档等操作。 #### 三、Solr创建索引流程 1. **建立SolrServer连接** - 使用`CommonsHttpSolrServer`类创建Solr服务器连接。 - 设置必要的参数,如URL、超时时间、最大连接...

    Sample-SolrJ-Client:示例 SolrJ 客户端

    这个"Sample-SolrJ-Client"是一个示例项目,旨在帮助开发者了解如何有效地使用 SolrJ 进行索引、查询和其他操作。以下将详细阐述 SolrJ 的核心概念、功能及其在实际开发中的应用。 1. **SolrJ 简介** SolrJ 是 ...

    solr在SSM框架中使用(支持中文分词查询)

    如果正确实现了分词,用户可以看到查询结果中对应的中文词汇被高亮显示,证明了Solr已经成功地对中文文本进行了分词索引。 在实际应用中,我们还需要考虑性能优化,例如利用Solr的分布式特性进行水平扩展,或者通过...

    商城项目的搜索功能示例代码-使用solrj.zip

    SolrJ是Apache Solr官方提供的Java客户端库,它允许开发人员方便地与Solr服务器进行交互,包括索引数据、执行查询、处理结果等操作。下面将详细介绍这个示例代码可能涉及的几个关键知识点。 1. **Apache Solr**:...

    solrj的使用

    SolrJ是Apache Solr官方提供的Java客户端库,主要用于与Solr服务器进行交互,包括索引数据、查询、管理Solr核心等操作。这个库极大地简化了开发人员在Java环境中与Solr通信的过程,使得我们可以方便地在应用程序中...

    solr查询索引

    Solr查询索引是Apache Solr的核心功能之一,它是一个基于Lucene的开源搜索服务器,提供了高效的全文检索、文档分类和聚类、拼写检查、高亮显示搜索结果等多种功能。在本文中,我们将深入探讨如何使用Solr进行索引...

    Solrj and Solr and LDAP and SearchEngine

    Solrj简化了Solr的集成工作,例如在Java应用中添加或更新文档,以及执行复杂的搜索查询。 【Solr】 Solr是基于Lucene的全文搜索引擎服务器,它提供了一个分布式、可扩展、高可用性的搜索和分析平台。Solr能够处理...

    快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词)第09讲 Solrj之Multicore查询共7页.pptx

    Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之高亮显示第19讲 solr之MoreLike...

    solr讲解,案例分析

    Solrj使得在Java应用程序中集成Solr变得简单,通过API可以方便地进行文档的添加、删除和更新操作。 案例分析部分通常会涵盖以下几个方面: 1. **部署与配置**:如何设置Solr服务器,包括下载、解压、启动和配置...

    全文搜索引擎Solr与ElasticSearch入门至集群及项目实战(Solr+ES)

    9、通过Solrj实现索引的添加更新 10、通过Solrj实现索引的删除 11、索引的检索_过滤_高亮等操作 12、项目实战应用 13、Solr知识点总结 14、ElasticSearch下载安装(window以及linux下安装) 15、集群环境搭建 16、...

    Lucene全文检索框架+Solr+ElasticSearch搜索引擎(Java高级必备.ES)

    8、通过Solrj实现索引的添加更新 9、通过Solrj实现索引的删除 10、索引的检索_过滤_高亮等操作 11、项目实战应用 12、Solr知识点总结 1、熟练掌握Lucene框架的使用,实现类似百度、京东商城等应用的全文检索...

    快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词)第07讲 solrj之SolrBean 共6页.pptx

    Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之高亮显示第19讲 solr之MoreLike...

    快速上手数据挖掘之solr搜索引擎高级教程(Solr集群、KI分词)第13讲 Solrj操作SolrCloud 共6页.pptx

    Solr集群安装与配置(二)第12讲 SolrCloud基本概念第13讲 Solrj操作SolrCloud第14讲 solr索引主从同步第15讲 solr之Facet第16讲 solr之FacetPivot第17讲 solr之Group第18讲 solr之高亮显示第19讲 solr之MoreLike...

Global site tag (gtag.js) - Google Analytics