热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Maven整合Spring与Solr

首先,在maven的pom.xml文件中配置对spring和solrj客户端的依赖:<projectxmlnshttp:maven.apache.orgPOM4.0.

  首先,在maven的pom.xml文件中配置对spring和solrj客户端的依赖:


  4.0.0

  com.itszt.DemoSS1
  DemoSS1
  1.0-SNAPSHOT
  jar

  DemoSS1
  http://maven.apache.org

  
    UTF-8
  

  
    
    
      org.springframework
      spring-context
      4.1.3.RELEASE
    
    
      org.springframework
      spring-beans
      4.1.3.RELEASE
    
    
      org.springframework
      spring-jdbc
      4.1.3.RELEASE
    
    
      org.springframework
      spring-aspects
      4.1.3.RELEASE
    

    
    
      org.apache.solr
      solr-solrj
      4.10.1
    

    
    
      junit
      junit
      4.12
      test
    

    
    
      org.springframework
      spring-test
      4.1.3.RELEASE
      test
    
  
  

  配置solr.properties文件中的solr服务器信息:  

solr.Url=http://127.0.0.1:8090/solr/products2
solr.maxRetries=2
solr.cOnnectionTimeout=5000

  配置spring-solr-config.xml文件中的solrj客户端信息:




     
     
          
          
          
               
          
          
          
          
          
     
  

  配置spring-config.xml文件:




     
     
     
     
     
     
     
     
     

  测试代码如下:

package com.itszt.DemoSS1;

import org.apache.solr.client.solrj.SolrQuery;
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 org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import java.io.IOException;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * maven整合spring与solr
 */
@ContextConfiguration(locatiOns= { "classpath:spring-config.xml" })
@RunWith(SpringJUnit4ClassRunner.class)
public class TestUpdate {
    @Autowired
    HttpSolrServer httpSolrServer;
    @Test
    public void testInsertData() throws IOException, SolrServerException {

        SolrInputDocument solrInputDocument=new SolrInputDocument();
        solrInputDocument.addField("id","10086");
        solrInputDocument.addField("product_price","998");
        solrInputDocument.addField("product_name","大黄音乐");

        httpSolrServer.add(solrInputDocument);
        httpSolrServer.commit();
    }

    @Test
    public void testUpdateData() throws IOException, SolrServerException {

        SolrInputDocument solrInputDocument=new SolrInputDocument();
        solrInputDocument.addField("id","10086");
        solrInputDocument.addField("product_price","998888");
        solrInputDocument.addField("product_name","大黄音乐555");

        httpSolrServer.add(solrInputDocument);
        httpSolrServer.commit();
    }

    @Test
    public void testDelete() throws IOException, SolrServerException {

//        httpSolrServer.deleteById("10086");
        httpSolrServer.deleteByQuery("product:大黄音乐");
         httpSolrServer.commit();

    }
    @Test
    public void testQuery() throws SolrServerException {

        SolrQuery solrQuery=new SolrQuery();
        solrQuery.setQuery("product:挂钩");
        QueryResponse queryRespOnse= httpSolrServer.query(solrQuery);

        SolrDocumentList results = queryResponse.getResults();
        for (SolrDocument result : results) {
            Collection fieldNames = result.getFieldNames();
            for (String fieldName : fieldNames) {

                System.out.println(fieldName+"  ---->  "+result.get(fieldName));
            }
        }
    }

    @Test
    public void testQuery2() throws SolrServerException {        SolrQuery solrQuery=new SolrQuery();
        solrQuery.setQuery("product_name:家居");
        solrQuery.setFields("product_name,product_price");
        solrQuery.setFilterQueries("product_price:[10 TO 100]");
        solrQuery.setSort("product_price", SolrQuery.ORDER.asc);
        solrQuery.setHighlight(true);
        solrQuery.set("hl.fl","product_name");
        QueryResponse queryRespOnse= httpSolrServer.query(solrQuery);

        SolrDocumentList results = queryResponse.getResults();

        System.out.println("查询回来的数量:"+results.size());
        for (SolrDocument result : results) {
            Collection fieldNames = result.getFieldNames();
            for (String fieldName : fieldNames) {

                System.out.println(fieldName+"  ---->  "+result.get(fieldName));
                System.out.println("------------------------------------");
            }
        }
        //获取高亮数据:
        System.out.println("获取高亮数据:");
        Map>> highlighting = queryResponse.getHighlighting();
        Set set1 = highlighting.keySet();
        for (String key1 : set1) {
            System.out.println("key1---->"+key1);
            Map> map2 = highlighting.get(key1);
            System.out.println("map2 = " + map2);
            Set set2 = map2.keySet();
            for (String key2 : set2) {
                System.out.println("key2---->"+key2);
            }
        }
    }
}  

推荐阅读
  • Activiti7流程定义开发笔记
    本文介绍了Activiti7流程定义的开发笔记,包括流程定义的概念、使用activiti-explorer和activiti-eclipse-designer进行建模的方式,以及生成流程图的方法。还介绍了流程定义部署的概念和步骤,包括将bpmn和png文件添加部署到activiti数据库中的方法,以及使用ZIP包进行部署的方式。同时还提到了activiti.cfg.xml文件的作用。 ... [详细]
  • 本文讨论了Alink回归预测的不完善问题,指出目前主要针对Python做案例,对其他语言支持不足。同时介绍了pom.xml文件的基本结构和使用方法,以及Maven的相关知识。最后,对Alink回归预测的未来发展提出了期待。 ... [详细]
  • Android系统移植与调试之如何修改Android设备状态条上音量加减键在横竖屏切换的时候的显示于隐藏
    本文介绍了如何修改Android设备状态条上音量加减键在横竖屏切换时的显示与隐藏。通过修改系统文件system_bar.xml实现了该功能,并分享了解决思路和经验。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 本文总结了初学者在使用dubbo设计架构过程中遇到的问题,并提供了相应的解决方法。问题包括传输字节流限制、分布式事务、序列化、多点部署、zk端口冲突、服务失败请求3次机制以及启动时检查。通过解决这些问题,初学者能够更好地理解和应用dubbo设计架构。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了使用kotlin实现动画效果的方法,包括上下移动、放大缩小、旋转等功能。通过代码示例演示了如何使用ObjectAnimator和AnimatorSet来实现动画效果,并提供了实现抖动效果的代码。同时还介绍了如何使用translationY和translationX来实现上下和左右移动的效果。最后还提供了一个anim_small.xml文件的代码示例,可以用来实现放大缩小的效果。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • MyBatis多表查询与动态SQL使用
    本文介绍了MyBatis多表查询与动态SQL的使用方法,包括一对一查询和一对多查询。同时还介绍了动态SQL的使用,包括if标签、trim标签、where标签、set标签和foreach标签的用法。文章还提供了相关的配置信息和示例代码。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • 目录浏览漏洞与目录遍历漏洞的危害及修复方法
    本文讨论了目录浏览漏洞与目录遍历漏洞的危害,包括网站结构暴露、隐秘文件访问等。同时介绍了检测方法,如使用漏洞扫描器和搜索关键词。最后提供了针对常见中间件的修复方式,包括关闭目录浏览功能。对于保护网站安全具有一定的参考价值。 ... [详细]
  • 本文介绍了禅道作为一款国产开源免费的测试管理工具的特点和功能,并提供了禅道的搭建和调试方法。禅道是一款B/S结构的项目管理工具,可以实现组织管理、后台管理、产品管理、项目管理和测试管理等功能。同时,本文还介绍了其他软件测试相关工具,如功能自动化工具和性能自动化工具,以及白盒测试工具的使用。通过本文的阅读,读者可以了解禅道的基本使用方法和优势,从而更好地进行测试管理工作。 ... [详细]
author-avatar
蜃海
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有