import org.apache.solr.client.solrj.SolrClient;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.junit.Test; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; public class SolrInsertTest {
//solr 服务器地址
public static final String solrServerUrl = "http://localhost:8983/solr";
//solrhome下的core
public static final String solrCroeHome = "mycore"; public static String[] docs = {"Solr是一个独立的企业级搜索应用服务器",
"它对外提供类似于Web-service的API接口",
"用户可以通过http请求",
"向搜索引擎服务器提交一定格式的XML文件生成索引",
"也可以通过Http Get操作提出查找请求",
"并得到XML格式的返回结果"}; public static void main(String[] args) {
System.out.println("solr insert test");
// SolrClient client = new HttpSolrClient(solrServerUrl+"/" + solrCroeHome);
SolrClient client = new HttpSolrClient.Builder(solrServerUrl + "/" + solrCroeHome).build(); List<SolrInputDocument> solrDocs = new ArrayList<>();
for (int i = 0; i < docs.length; i++) {
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", i);
doc.addField("content_text", docs[i]);
solrDocs.add(doc);
} try {
client.add(solrDocs);
client.commit();
System.out.println("Insert Done");
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
client.close();
} catch (IOException e) {
e.printStackTrace();
}
} } @Test
public void testSolrQuery() throws IOException, SolrServerException {
SolrClient client = new HttpSolrClient(solrServerUrl + "/" + solrCroeHome);
SolrQuery query = new SolrQuery("content_text:类似"); // 设置查询关键字
/* query.setQuery("Content:* AND Spare3:1 "); */
// 指定查询返回字段
/* query.setParam("fl", "Content,IndexTime"); */
// 设置高亮
// query.setHighlight(true).setHighlightSimplePre("<span class='red'>")
// .setHighlightSimplePost("</span>");
// query.setParam("hl.fl", "Content");//设置高亮字段
// query.setParam("fl", "ID,Published"); //排除条件 - NOT
//wbQuery.addFilterQuery("OriginType:wb -Spare3:0");
//wbQuery.addFilterQuery("OriginType:wb NOT Spare3:0");
// 时间条件过滤
/* query.addFilterQuery("Content:超哥"); */
/*
* query.addFilterQuery(
* "Published:[1995-12-31T23:59:59.999Z TO 2016-03-06T00:00:00Z]");
**/ // 实现分页的查询
query.setStart(0);
query.setRows(10); // 设定排序,如果需要对field进行排序就必须在schema.xml中对该field配置stored="true"属性
//set会清空原来的sort条件,add不会清空原来的,会在原来的基础上添加 sort=Published asc,Author asc(多条件排序)
// query.setSort(IContentCommon.IndexField.Published.getName(),
// SolrQuery.ORDER.asc);
//
// query.addSort(IContentCommon.IndexField.Published.getName(),
// SolrQuery.ORDER.asc); QueryResponse response = client.query(query);
System.out.println(query);
SolrDocumentList docs = response.getResults();
System.out.println(docs.getNumFound());
for(SolrDocument doc : docs){
Object id = doc.get("id");
System.out.println("id:" + id + ", content:" + doc.get("content_text")); }
client.close(); } @Test
public void testSolrDelete() throws IOException, SolrServerException {
SolrClient client = new HttpSolrClient.Builder(solrServerUrl + "/" + solrCroeHome)
.build(); UpdateResponse response = client.deleteById("0");
int status = response.getStatus();
System.out.println("status:" + status);
client.commit();
client.close();
}
}

Solr简单测试的更多相关文章

  1. TODO:Golang UDP连接简单测试慎用Deadline

    TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...

  2. .net orm比较之dapper和Entity Framework6的简单测试比较

    .net orm比较之dapper和Entity Framework6的简单测试比较

  3. 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试

    原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...

  4. ORACLE 数据库简单测试

    ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库  非同一个用户的情况,用户是否可以 ...

  5. Javascript的简单测试环境

    在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...

  6. struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  7. struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)

    为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...

  8. [20190423]简单测试latch nowilling等待模式.txt

    [20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...

  9. Javascript学习-简单测试环境

    Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...

随机推荐

  1. 搞懂head 和 tail 命令

    情景 会点linux命令的人都知道head -n k和tail -n k(k≥0)的作用,但却不知道还支持head -n -k和tail -n +k的用法, 更不知道有着怎样的作用了. 图解 下面,用 ...

  2. vue项目如何打包扔向服务器

    vue项目如何打包扔向服务器   当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中.我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放 ...

  3. HDU1506: Largest Rectangle in a Histogram(最大子矩阵,好题动态优化左右边界)

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=1506 刚开始没考虑时间复杂度,直接敲了,直接tle了,之后没有思路,然后看题解,看见大神写的优化非常棒. ...

  4. [DevOps] 认识一下

    大家都在说DevOps(Develop Operation),大概知道就是开发和运维沟通交流,一条线,然后使产品能够顺利的.短时间内上线.维稳什么的. 今天特意看了下 DockOne里面的一篇文章,再 ...

  5. [笔记] Ubuntu下编译ffmpeg+openh264+x264

    [下载代码]   - ffmpeg: git clone git://source.ffmpeg.org/ffmpeg.git - openh264: git clone https://github ...

  6. class_options

    一.class_option :stylesheet, :type => :boolean, :default => "true", :description => ...

  7. System.Linq.Dynamic 动态查询

    安装 VS->工具栏->NuGet程序管理器,System.Linq.Dynamic 注意: 使用动态查询必须先调用AsQueryable()方法,因为动态扩展仅适用于实现IQueryab ...

  8. sql统计上周销售量的起止时间

    开始日期: >select DATEADD(Day, 1 - DATEPART(Weekday,CONVERT(varchar(10), GETDATE() - 7, 120)), CONVER ...

  9. Spring 之通过 Java 代码装配 bean

    [关于IoC的几点认识] 1.面向接口编程 --> 每层只向上层提供接口 2.inversion of control (IoC)  -->参考百度百科 3.DI是IoC的一种实现方式 [ ...

  10. js自执行函数&扩展方法

    我们通常将JS代码写在一个单独的JS文件中,然后在页面中引入该文件.但是,有时候引入后会碰到变量名或函数名与其它JS代码冲突的问题.那么如何解决这个问题呢?作用域隔离.在JS中,作用域是通过函数来划分 ...