java 测试 solr更新和查询

全文检索引擎Solr系列——入门篇 Solr采用Lucene搜索库为核心,提供全文索引和搜索开源企业平台,提供REST的HTTP/XML和JSON的API,如果你是Solr新手,那么就和我一起来入门吧!本教程以solr4.8作为测试环境,jdk版本需要1.7及以上版本。 准备 本文假设你对Java有初中级以上水平,因此不再介绍Java相关环境的配置。下载解压缩solr,在example目录有start.jar文件,启 阅读详情
@Test
    public void addDocument() throws Exception{
        //1.创建链接
        SolrServer solr = new HttpSolrServer("http://localhost:8080/solr");

        //2.创建一文档对象
        SolrInputDocument document = new SolrInputDocument();

        //3.向文档对象中添加域 (先定义后使用)
        document.addField("id", "001");
        document.addField("title", "这是新的域");

        //4.提交文档到索引库
        solr.add(document);

        //5.提交
        solr.commit();  
    }

    @Test
    public void deleteDocument() throws Exception{
        //1.创建链接
        SolrServer solr = new HttpSolrServer("http://localhost:8080/solr");

        //2.根据id删除
        solr.deleteById("001");

        //根据查询删除
        //solr.deleteByQuery("*:*");

        //.提交
        solr.commit();  
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
/**
 * 使用@Field注解的属性要和Solr配置的Field对应。
    用于更新、插入 到索引库中的bean类
 * @author w7
 *
 */
public class Books {

    @Field
    private String id;
    @Field
    private String bname;
    @Field
    private String bauthor;
    @Field
    private String bprice;
    @Field
    private String bcurrprice;
    @Field
    private String bdiscount;
    @Field
    private String bpress;
    @Field
    private String bpublishtime;
    @Field
    private String bedition;
    @Field
    private String bpagenum;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getBname() {
        return bname;
    }
    public void setBname(String bname) {
        this.bname = bname;
    }
    public String getBauthor() {
        return bauthor;
    }
    public void setBauthor(String bauthor) {
        this.bauthor = bauthor;
    }
    public String getBprice() {
        return bprice;
    }
    public void setBprice(String bprice) {
        this.bprice = bprice;
    }
    public String getBcurrprice() {
        return bcurrprice;
    }
    public void setBcurrprice(String bcurrprice) {
        this.bcurrprice = bcurrprice;
    }
    public String getBdiscount() {
        return bdiscount;
    }
    public void setBdiscount(String bdiscount) {
        this.bdiscount = bdiscount;
    }
    public String getBpress() {
        return bpress;
    }
    public void setBpress(String bpress) {
        this.bpress = bpress;
    }
    public String getBpublishtime() {
        return bpublishtime;
    }
    public void setBpublishtime(String bpublishtime) {
        this.bpublishtime = bpublishtime;
    }
    public String getBedition() {
        return bedition;
    }
    public void setBedition(String bedition) {
        this.bedition = bedition;
    }
    public String getBpagenum() {
        return bpagenum;
    }
    public void setBpagenum(String bpagenum) {
        this.bpagenum = bpagenum;
    }
    @Override
    public String toString() {
        return "Books [id=" + id + ", bname=" + bname + ", bauthor=" + bauthor + ", bprice=" + bprice + ", bcurrprice="
                + bcurrprice + ", bdiscount=" + bdiscount + ", bpress=" + bpress + ", bpublishtime=" + bpublishtime
                + ", bedition=" + bedition + ", bpagenum=" + bpagenum + "]";
    }


}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
/**
 * solr测试
 * 
 * @author w7
 *
 */
public class SolrTest {
    private static SolrServer server;

    private static final String DEFAULT_URL = "http://localhost:8080/solr";

    public static void init() {
        server = new HttpSolrServer(DEFAULT_URL);
    }

    // 添加 book 到索引库
    public static void indexBooks(Books book) {
        try {
            UpdateResponse response = server.addBean(book);

            server.commit();
            System.err.println(response.getStatus());// 响应状态

        } catch (IOException | SolrServerException e) {
            e.printStackTrace();
        }
    }

    // 查询
    public static void testQueryAll() {
        SolrQuery params = new SolrQuery();

        // 查询关键词,*:*代表所有属性、所有值,即所有index
        params.set("q", "*:*");

        // 分页,start=0就是从0开始,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了。
        params.set("start", 0);
        params.set("rows", "5");

        // 排序,如果按照id排序,那么 写为: id desc(or asc)
        params.set("sort", "id asc");

        QueryResponse response = null;
        try {

            response = server.query(params);
        } catch (SolrServerException e) {
            e.printStackTrace();
        }

        if (response != null) {
            System.out.println("Search Results: ");
            SolrDocumentList list = response.getResults();
            for (int i = 0; i < list.size(); i++) {
                System.out.println(list.get(i).get("bpress"));//根据key取值
            }
        }

    }

//测试:
    public static void main(String[] args) {
        init();
        SolrTest.testQueryAll();
    }

}
课程复习---分析空间数据的细胞空间关系(python版本的mistyR) 阅读详情

相关推荐

创龙 瑞芯微 RK3588 国产工业开发板—Qt交叉编译环境搭建与GPU图形渲染实战

本文详细介绍了在创龙RK3588国产工业开发板上搭建Qt交叉编译环境并利用GPU进行图形渲染的完整实战流程。文章从环境准备入手,讲解了交叉编译工具链的配置,并提供了命令行与Qt Creator两种编译方法。通过部署运行和自启动设置,确保程序在板卡上稳定运行。最后,通过OpenGL案例实战,展示了如何调用RK3588的GPU进行高效图形渲染,释放其图形处理潜力,适用于工业HMI、智能终端等高要求图形界面开发。

weixin_28278377的博客 450

Solr入门到熟练

2. 需求分析 2.1. 实现方法 在一些大型门户网站、电子商务网站等都需要站内搜索功能,使用传统的数据库查询方式实现搜索无法满足一些高级的搜索需求,比如:搜索速度要快、搜索结果按相关度排序、搜索内容格式不固定等,这里就需要使用全文检索技术实现搜索功能。 2.1.1. 使用Lucene实现 单独使用Lucene实现站内搜索需要开发的工作量较大,主要表现在:索引维护、索引性能优化、搜索性能优

jk19951215的博客 2449

PSpice 导入 LTspice 仿真实验 --(如何解决PSpice模型无法使用的错误)

参考了网上第三方器件导入LTspice的博客和资料,不论是哪个公司下载的SPICE模型导入LTspice的方法都类似。如果遇到导入报错的情况可以先看一下报错提示,如果通过语法修改实现功能的则说明可以进行仿真,当然性能可能与官方给的模型存在一点出入,但做一个基本的功能验证本人认为还是可以的,总比做出板子用不了或者完全不匹配的要好一些。

伊丽莎白的学习之路 8998

solr全量更新和增量更新

solr全量更新和增量更新 1.首先理解更新 数据库中的数据导入solr缓存中就是更新。 2.全量更新 全量更新,就是把数据库中的全部数据都导入solr缓存库中,一般会删除solr缓存库现有的数据。 全量的话,可以采用直接全部覆盖(使用“新”数据覆盖“旧”数据);或者走更新逻辑(覆盖前判断下,如果新旧不一致,就更新); 1.core/conf 目录下的 solrconfig.xml,新增如下配置 <requestHandler name="/dataimport" class="solr.DataIm

WeiLan_的博客 1455

用Python实现图片风格迁移,让你的图片更加的高逼格!

先来看下效果: 上图是老王在甘南合作的米拉日巴佛阁外面拍下的一张照片,采用风格迁移技术后的效果为: 一些其它效果图: 下面进入正题。 近年来,由深度学习所引领的人工智能(AI)技术浪潮,开始越来越广泛地应用到生活各个领域。这其中,人工智能与艺术的交叉碰撞,在相关技术领域和艺术领域引起了高度关注。就在上个月,由电脑生成的艺术品在佳士得(Christie’s)的拍卖价竟高达43.25万美元,...

Python追梦 6181

[深入研究4G/5G/6G专题-31]: 5G NR开机流程5.2 - UE Attach流程(Registeration Request/Accept/Complete)

目录前言:前置条件:第1章 5G NR UE attach流程(从UE log的视角看)1.0 NAS消息解析器1.1 消息交互流程1.2 UE Registeration Request消息(AMF->基站->UE)1.3 AMF Registeration Accept消息(AMF->基站->UE)1.4 UE Register complete消息(UE->基站->AMF)第2章 UE Register...............

文火冰糖(王文兵)的博客 7万+

Solr 全量更新和增量更新 配置方式

deltaImportQuery 指定的sql要求我们将满足PK的数据进行填充,需要配置在FieId中出现的属性,其作用和query类似,只不过该作用是将前面两个deltaQuery、deletedPkQuery过滤后进行了一次封装,以更新部分需更新的记录所对应的Solr的数据库索引。基于项目的特殊性,本项目将所有的文本类型记录的表全部读取进入Solr进行管理,但因文本记录的表比较多和复杂,导致了后面在使用solr自带功能增量更新时出现了问题。该配置在使用全量更新full-import显得尤为的突出;

猫步轻移,以学求知。余于此方寸之地,如猫观鼠,细察技艺所得,思维所悟。灵思如猫之警觉,日积月累,终成智海; 1480

37、基于视觉的轻量级面部呼吸和心率测量技术

本文提出了一种基于视觉的轻量级面部呼吸和心率测量技术,通过远程光电容积脉搏波描记法(RPPG)和面部振动信息实现非接触式生理信号采集。创新性地结合框选和特征点选择多个感兴趣区域(ROI),并采用光流跟踪、主成分分析(PCA)和集成经验模态分解(EEMD)等方法优化信号处理流程。实验结果表明,该方法在测量精度和稳定性方面优于传统方法,并可在树莓派4等低功耗平台上实现实时运行,具有广泛的应用前景。

r7s8t的博客 307

solr 删除数据 java_如何从solr和hbase中删除所有数据

回答(16)2 years ago如果你想清理索尔索引 -你可以开火http网址 -http://host:port/solr/[core name]/update?stream.body=*:*&commit=true(将 [core name] 替换为要从中删除的核心的名称) . 或者如果发布数据xml数据,请使用此方法:*:*请务必使用 commit=true 提交更改但是,清除hb...

weixin_39645308的博客 383

Python爬虫实战:使用最新技术爬取新华网新闻数据

在当今信息爆炸的时代,网络爬虫技术已经成为获取互联网数据的重要手段。作为国内权威新闻媒体,新华网每天发布大量高质量的新闻内容,这些数据对于舆情分析、市场研究、自然语言处理等领域具有重要价值。本文将详细介绍如何使用Python最新技术构建一个高效、稳定的新华网新闻爬虫系统。本文详细介绍了如何使用Python最新技术栈构建一个高效、稳定的新华网新闻爬虫系统。我们从基础爬虫开始,逐步添加了代理支持、用户代理轮换、请求延迟、重试机制、动态页面渲染、数据存储等高级功能,最终实现了一个生产可用的分布式爬虫系统。

2201_76125261的博客 1771

库存管理系统项目部署方案(基于jdk8)

不需要安装到服务器,运维本地安装就行,主要是用来编译前端代码的。构建完成后将dist文件夹复制到服务器内。

程序员诚哥 2576

java操作solr Document数据

继上一篇,solr启动成功后,使用java来简单操作下solr的数据,也就是solr中的Document。 首先我们创建一个core来用于测试,创建core的方式见博文 Apache solr入门中的创建core章节。 这里我们创建一个test_core用于来测试 在 managed-schema文件中添加两个简单的字段(test_id, test_name)用于测试,如下:(也可以直接在界面操...

Min_Monk的博客 610

Dify 第 3 篇 Dify 入门示例 - 聊天助手

本文介绍了如何使用Dify平台快速搭建一个聊天助手。首先通过创建空白应用并选择"聊天助手"模板完成基础设置,然后安装配置通义千问等大语言模型(LLM)并设置API密钥。进阶部分演示了如何创建支持编程语言选择的代码解释器,包括添加提示词约束、插入变量、设置开场白等功能。最后展示了运行效果:用户可选择编程语言后输入代码,系统会给出相应解释。文章还提到应用支持发布共享,并附有Dify官方文档参考链接。

甘蓝的专栏 863

solr读取word,pdf

转自:http://blog.youkuaiyun.com/aidayei/article/details/6535898   lucene和solr的对比: 1.http://www.blogjava.net/luopeizhong/articles/321732.html 2.Apache Solr:基于Lucene的可扩展集群搜索服务器   lucene对索引的更新比solr麻烦,solr只...

dcb2008的学习笔记 461

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

利用SolrJ操作solr API完成index操作

使用SolrJ操作Solr会比利用httpClient来操作Solr要简单。SolrJ是封装了httpClient方法,来操作solr的API的。SolrJ底层还是通过使用httpClient中的方法来完成Solr的操作。 1、 首先,你需要添加如下jar包 其中apache-solr-solrj-3.4.0.jar、slf4j-api-1.6.1.jar可以...

weixin_30929011的博客 69

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Solr使用入门说明

  本文转自 http://chuanliang2007.spaces.live.com/blog/cns!E5B7AB2851A4C9D2!499.entry?wa=wsignin1.0   由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实现搜索引擎的方案上有集中方案可供选择: 1. 基于Lucene自己进行封装实现站内搜索。工作量及扩...

zhangchb的博客 2842

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Solr使用入门指南

本文转自http://chuanliang2007.spaces.live.com/blog/cns!E5B7AB2851A4C9D2!499.entry?wa=wsignin1.0 由于搜索引擎功能在门户社区中对提高用户体验有着重在门户社区中涉及大量需要搜索引擎的功能需求,目前在实...

126

SolrMeter

Benchmarking Solr<br /><br />http://wiki.apache.org/solr/BenchmarkingSolr<br /> <br />SolrMeter is a stress testing / performance benchmarking tool for Apache Solr installations. It is licensed under ASL and developed using JavaSE and Swing components, con

346

solr 安装和使用

solr中域名和域的类型,等同于mysql中表字段和表字段类型上面有Book实体类,有字段name、author、introduce;需要在solr中定义对应的域,以及对应的分词器这里笔者对introduce字段进行中文分词,使用上面配置的中文分词器 text_ik需要在solr_book实例下面的managed-schema文件中添加域的配置下面笔者使用 Linux 搭建的 solr 进行操作编辑 managed-schema 文件在managed-schema文件末尾添加域的配置。

悟世君子的博客 5554

java更新solr_java操作solr

直接上代码:【1】引入jarorg.apache.solrsolr-solrj4.10.4junitjunit4.12commons-loggingcommons-logging1.1.1【测试代码】javabean:/*** Created by mis on 2017/5/24.*/public class Car implements Serializable {@Field("id")//...

weixin_39991222的博客 308

Solr\Lucene优劣势分析

最早lucene2.4以及以前,追溯到2008年前后,lucene刚刚引起大家的关注,到后来Nutch 、solr的出现,lucene变得更加热。Nutch、Solr的发展,极大推动了lucene的升级。 对于一些接触过搜索,使用过lucene、solr的人来说,一般都会感觉lucene、solr很牛逼。我个人也认为solr、lucene确实非常NB,他涵盖了信息检索的几乎全部基础知识和非常高...

tao_wei162的博客 142

solr与solrj6.0查询总结

solr查询需要注意的几个点: 1.配置文件中如果该列的type=string,则是完全匹配查询,所以配置分词不要忘记了。 另外如果给字段加上双引号也是完全匹配查询,例如 2.多个查询条件需要连接符,连接符解释高速入口,经测试支持括号。 划重点:“+”不等于AND,完全不同,加号只需要满足后面的条件,前面的条件可有可无,所以推荐使用AND、OR、NOT等集合修饰符。3.顺便记录删除的方法

u010698087的博客 1869

solr环境搭建以及添加文档和查询文档

1.solr的定义 Solr是一个高性能,基于Lucene的全文搜索服务器。同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展并对查询性能进行了优化,并且提供了一个完善的功能管理界面。 文档通过Http利用XML 加到一个搜索集合中查询该集合也是通过http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结...

jialiang的博客 938

solr集成springboot并向solr推送索引数据更新和查询

虽然说是很简单的功能,但是在此记录一下 首先导入maven映射 org.apache.solr solr-solrj 引入solr的jar镜像之后就可以开始开发了 Junit测试用例: import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; i

warmer_winter的博客 8128

solr 在Java中的使用

//先创建一个实体,省略get, set 方法 public class Project{ @Field(value = "id") private String id; @Field(value = "title") private String title; @Field(value = "description") private Str...

小智的博客 319

solr java 教程_【Solr】使用solrj管理solr

前言搭建好了solr服务器,使用solr自带的数据导入是不现实的,我们需要在java代码中实现solr对数据的导入。导入jar包引入solr-solrj.jar(solr-4.10.3的dist目录下)操作数据1、添加数据public void addDocument() throws Exception{//创建一个SolrServer对象,创建一个连接,参数solr服务的urlSolrServ...

weixin_30325929的博客 223
上一篇: Log4j – 如何配置多个logger?
下一篇: freeswitch 1.10 版本安装教程
sunday_code
博客等级 码龄12年 3粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值