Solr简单测试
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简单测试的更多相关文章
- TODO:Golang UDP连接简单测试慎用Deadline
TODO:Golang UDP连接简单测试慎用Deadline UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interco ...
- .net orm比较之dapper和Entity Framework6的简单测试比较
.net orm比较之dapper和Entity Framework6的简单测试比较
- 构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试
原文:构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(37)-文章发布系统④-百万级数据和千万级数据简单测试 系列目录 我想测试EF在一百万条数据下的显示时间! ...
- ORACLE 数据库简单测试
ORACLE 数据库简单测试 操作系统:Windows 7 – ORACLE:oracle database 10.2.0.4 一.目的 测试 启动监听程序.数据库 非同一个用户的情况,用户是否可以 ...
- Javascript的简单测试环境
在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很好的例子,既让我们得到了一个好用的小工具 ...
- struts2+hibernate+spring注解版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- struts2+hibernate+spring配置版框架搭建以及简单测试(方便脑补)
为了之后学习的日子里加深对框架的理解和使用,这里将搭建步奏简单写一下,目的主要是方便以后自己回来脑补: 1:File--->New--->Other--->Maven--->M ...
- [20190423]简单测试latch nowilling等待模式.txt
[20190423]简单测试latch nowilling等待模式.txt --//我对这个问题的理解就是如果参数willing=0,表示无法获取该latch,直接退出,再寻找类似的latch.--/ ...
- Javascript学习-简单测试环境
Javascript学习-简单测试环境 在<JavaScript忍者秘籍>2.4测试条件基础知识中,作者给出了一个精简版的assert和assert组的实现,对于初学者而言,这无疑是一个很 ...
随机推荐
- Vue中通过鼠标移入移出来添加或取消class样式(active)
基础知识: 先写一下vue中鼠标移入移出的基础知识,移入的触发事件是 @mouseenter,移出的触发事件是@mouseleave,知道这两个方法就简单了 基础知识的例子 <div clas ...
- element-UI中el-select下拉框可搜索时候,filter-method自定义搜索方法
使用element-UI框架的使用,我们经常使用el-select下拉框,很多时候还需要使用可搜索的下拉框,然后elementUI官网的实例中只是提了一下filter-method可以自定义搜索方法, ...
- docker 构建镜像 centos7 nginx php
#docker 构建镜像(Dockerfile) centos 7.4.1078镜像制作 nginx镜像制作(以前面centos7镜像为基础) Nginx+php镜像制作 更多操作实例,查看git里的 ...
- Leetcode 之 Set Mismatch
645. Set Mismatch 1.Problem The set S originally contains numbers from 1 to n. But unfortunately, du ...
- 聚合的安全类导航、专业的安全知识学习平台——By Me:)
以“基于对抗的安全研发”为初衷,让大家在工作中始终有安全意识.安全思维和安全习惯,几年前自己搭建了面向公司内部全员的安全晨报.现在站在“用户“的角度回头看看,觉得科目设计等很多方面都还有很多的不足: ...
- C#__ 模拟鼠标单击事件
首先要用到的引用有 [DllImport("User32")] public extern static void mouse_event(int dwFlags, int dx, ...
- DP专题·四(树形dp)
1.poj 115 TELE 题意:一个树型网络上有n个结点,1~n-m为信号传送器,n-m+1~n为观众,当信号传送给观众后,观众会付费观看,每铺设一条道路需要一定费用.现在求以1为根,使得收到观众 ...
- SpringBoot RedisMQ消息队列与发布订阅
SpringBoot简单整合RedisMQ消息队列和发布订阅 注:RedisMq消息队列使用redis数组实现,leftpush存一,rightpop取一. 1.application.propert ...
- @RequestBody和@ResponseBody的使用情形以及RestTemplate的http报文转换
@RequestBody和@ResponseBody两个注解,分别完成请求报文到对象和对象到响应报文的转换. @RequestBody 1.@requestBody注解常用来处理content-typ ...
- OpenGL中的Shader
http://blog.csdn.net/huangcanjun187/article/details/52474365 学习总结自:http://learnopengl.com/#!Getting- ...