`

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讲解,案例分析

    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框架的使用,实现类似百度、京东商城等应用的全文检索...

    apache solr1.3.0所有最新开发包及源码及文档

    组件包括现有的功能如faceting(多侧面搜索),同时添加More Like This(更多类似的), Editorial Boosting (Query Elevation查询扩展) 和Spell Checking(拼写检查)。 ——为了更容易索引数据库内容到Solr,建立...

    Solr入门使用详解.zip

    SolrJ提供了丰富的API,使得开发者可以方便地创建、更新和删除索引,以及执行查询操作。例如,你可以使用SolrJ创建一个SolrClient实例,然后调用其add方法来添加文档到索引,使用deleteById或deleteByQuery方法删除...

    4.10.3 solr

    8. **实时添加和更新**:Solr 可以实现实时索引,这意味着新的文档一旦被添加或更新,立即可以在搜索结果中反映出来。 9. **优化和段合并**:索引优化是将多个段合并成一个大段的过程,以提高搜索性能。Solr 自动...

Global site tag (gtag.js) - Google Analytics