Solrj是Solr官方提供的基于Java的Solr客户端,提供完善的Solr操作API。
以好友为例。首先定义SpaceFriend实体Bean,用来直接处理Solr返回信息:
import org.apache.solr.client.solrj.beans.Field;
public class SpaceFriend {
@Field("Id")
int id;
@Field("WebNickname")
String webNickname;
@Field("portrait")
String Portrait;
@Field("Gender")
int gender;
@Field("Age")
int age;
@Field("IsAgePublic")
boolean isAgePublic;
@Field("Horoscope")
int horoscope;
@Field("marriage")
int marriage;
@Field("FriendType")
String[] friendType;
@Field("CityNow")
String cityNow;
@Field("isCityPublic")
boolean isCityPublic;
}
为了方便写了一个junit测试:
import java.util.List;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import org.apache.solr.client.solrj.*;
import org.apache.solr.client.solrj.SolrQuery.ORDER;
import org.apache.solr.client.solrj.impl.BinaryRequestWriter;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
public class SolrJTest {
//多线程共享
static CommonsHttpSolrServer server;
@BeforeClass
public static void beforeClassClass() throws Exception {
server = new CommonsHttpSolrServer(
"http://localhost:8088/solr");
server.setSoTimeout(1000);
server.setConnectionTimeout(100);
server.setDefaultMaxConnectionsPerHost(100);
server.setMaxTotalConnections(100);
server.setFollowRedirects(false);
server.setAllowCompression(true);
server.setMaxRetries(1);
//提升性能采用流输出方式
server.setRequestWriter(new BinaryRequestWriter());
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@Before
public void setUp() throws Exception {
}
/**
* @throws java.lang.Exception
*/
@After
public void tearDown() throws Exception {
}
@Test
public void QueryTest() throws SolrServerException {
SolrQuery query = new SolrQuery();
//主查询
query.setQuery("*:*");
//采用过滤器查询可以提高性能
query.addFilterQuery("Searchable:1");
query.addFilterQuery("SpaceAccessPrivate:1");
//区间查询
query.addFilterQuery("Age:[* TO 50]");
query.addFilterQuery("FriendType:1");
//添加排序
query.addSortField("Score", ORDER.desc);
//分页返回结果
query.setStart(0);
query.setRows(10);
QueryResponse rsp = server.query(query);
List<SpaceFriend> beans = rsp.getBeans(SpaceFriend.class);
//输出符合条件的结果数
System.out.println("NumFound: " + rsp.getResults().getNumFound());
//输出结果
for (int i = 0; i < beans.size(); i++) {
SpaceFriend friend = beans.get(i);
System.out.println("SpaceFriend " + i);
System.out.println("Id " + friend.id);
System.out.println("WebNickname:" + friend.webNickname);
}
}
}
相关推荐
solrj的facet查询总结
里面有非常详细的说明交你怎么使用solrj客户端来操作solrAPI
solrj使用教程
在solr检索时,该方法集成了solrj的所有基本使用方法
solrj工具类封装,包括条件批量查询,批量增删改,分段修改。
solr详细配置教程与solrj的使用
Solr是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口。...Solrj 是访问 Solr 的 Java 客户端,它提供添加、更新和查询Solr 索引的接口。http://wiki.chenlb.com/solr/doku.php?id=solrj
商城项目的搜索功能示例代码-使用solrj压缩包中是在商场项目中使用solrj访问solr服务的代码例子,需要时可以参考。。。
简单的SolrJ使用示例,包括文件:News.java(PO对应的class),SolrService.java(对solrJ的包装),SolrServiceHook.java(在查询前修改SolrQuery的行为)
solrJ是Java连接solr进行查询检索和索引更新维护的jar包。
放了SolrJ6.3.0所有web工程下的Jar包。solr-solrj6.3.0.jar等。放了SolrJ6.3.0所有web工程下的Jar包。放了SolrJ6.3.0所有web工程下的Jar包。
主要讲解了 solr客户端如何调用带账号密码的solr服务器调用,实现添加索引和查询索引,以及分组查询
该文档主要是对solr1.4的配置,包含服务器的复制,分发,和分片
solr-solrj 5.0.0 和自己搭建的solr服务交互
solr-solrj-4.9.0.jar
压缩文件里面有solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar两个jar
NULL 博文链接:https://747017186.iteye.com/blog/2111497
solr-solrj-4.10.3.jar。
Solrj 中文教程
1.下载solr ...windows下载zip,linux下载tgz 下载完解压 2.solr启动&停止 solr-8.0.0\bin目录下执行cmd solr start 启动 solr stop -all 3.创建solrcore \solr-8.0.0\server\solr\目录下新建文件夹(如:new_db) ...