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进行查询操作。 - **操作详情**: 创建SolrServer实例,然后使用`query`方法执行查询。 ```java import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client....
接下来,可以使用SolrJ API对索引进行操作。索引文档通常涉及创建一个`SolrInputDocument`对象,然后将其添加到索引中: ```java SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "1"); doc....
5. **异步操作**:支持异步接口,允许开发者在后台进行索引和查询操作,提高应用响应速度。 6. **更新监听**:能够监听Solr服务器的更改事件,以便在数据变化时自动更新本地缓存。 在6.1.0版本中,可能包含以下特性...
SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr搜索引擎进行交互变得简单...在实际项目中,开发者应当根据具体需求将这些库添加到项目的类路径中,以便顺利地使用SolrJ进行Solr的相关操作。
这通常涉及定义服务接口,使用SolrJ进行查询操作,并将结果返回给请求方。 5. **HttpClient调用服务**: HttpClient是Apache的一个Java库,用于执行HTTP请求。在日志中提到的HttpClient被用来调用Taotao-search...
这个“solrj使用教程”很可能是为了帮助开发者了解如何使用SolrJ来连接、查询和管理Solr索引。下面将详细介绍SolrJ的主要功能和使用方法。 **1. 安装和导入** 首先,你需要通过Maven或Gradle等构建工具将SolrJ库...
查询操作同样简单,可以使用`SolrQuery`类构造查询语句,并通过`server.query()`方法执行。Solr-Solrj支持多种查询语法,包括标准查询、高亮显示、 faceting(分面搜索)等高级功能。 ```java SolrQuery query = ...
SolrJ是Apache Solr官方提供的Java客户端库,它允许开发人员方便地与Solr服务器进行交互,包括索引数据、执行查询、处理结果等操作。下面将详细介绍这个示例代码可能涉及的几个关键知识点。 1. **Apache Solr**:...
开发者可以使用这个库来创建 Solr 客户端实例,发送请求并接收响应,进行索引管理和查询操作。 3. **solr-langid-6.3.0.jar**:这个库包含了语言识别功能,可以帮助 Solr 自动识别文档中的语言,以便进行适当的分词...
SolrJ是Apache Solr项目的Java客户端库,它为与Solr服务器进行交互提供了便利的API。这个压缩包包含了两个版本的SolrJ库:solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar。这两个版本的差异主要在于对Solr服务器的...
3. 测试连接:集成完成后,编写测试用例验证能否成功连接Solr服务器,执行基本的索引和查询操作,确保SolrJ的配置无误。 通过正确地引入和配置这些jar包,你可以利用SolrJ的强大功能,在Java应用中构建高性能的全文...
- **4.4 使用SolrJ创建索引**:介绍如何使用SolrJ创建和管理索引。 ##### 4.5 Solrj包的结构说明 - **4.5.1 CommonsHttpSolrServer**:通过HTTP协议与Solr交互的客户端。 - **4.5.2 Setting XMLResponseParser**:...
接着,我们可以创建一个SolrService类,该类使用SolrServer对象进行索引的增删改查操作。 对于中文分词查询,我们需要在Solr的schema.xml文件中设置字段类型为支持中文分词的类型。例如,使用IK Analyzer,我们需要...
文档操作是SolrJ中最基本的功能之一,主要包括文档的添加、删除、更新以及查询。 1. **添加文档** ```java public static void addDocument() throws Exception { // 创建与Solr服务器的连接 SolrServer ...
除了添加文档,我们还可以使用SolrJ进行查询操作。`query()`方法用于执行Solr查询,返回一个`QueryResponse`对象,其中包含了查询结果。以下是一个简单的查询示例: ```java public void query(String queryStr) ...