`
javis163
  • 浏览: 44735 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用solrj进行查询操作

    博客分类:
  • java
阅读更多

 

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);

        }

    }

}

分享到:
评论

相关推荐

    solr配置和solrJ的使用

    - **步骤说明**: 使用SolrJ进行查询操作。 - **操作详情**: 创建SolrServer实例,然后使用`query`方法执行查询。 ```java import org.apache.solr.client.solrj.SolrQuery; import org.apache.solr.client....

    solrj的使用

    接下来,可以使用SolrJ API对索引进行操作。索引文档通常涉及创建一个`SolrInputDocument`对象,然后将其添加到索引中: ```java SolrInputDocument doc = new SolrInputDocument(); doc.addField("id", "1"); doc....

    solr-solrj-6.1.0

    5. **异步操作**:支持异步接口,允许开发者在后台进行索引和查询操作,提高应用响应速度。 6. **更新监听**:能够监听Solr服务器的更改事件,以便在数据变化时自动更新本地缓存。 在6.1.0版本中,可能包含以下特性...

    solrJ 需要的jar文件 (全)

    SolrJ是Apache Solr官方提供的Java客户端库,它使得在Java应用程序中与Solr搜索引擎进行交互变得简单...在实际项目中,开发者应当根据具体需求将这些库添加到项目的类路径中,以便顺利地使用SolrJ进行Solr的相关操作。

    工作日志_李响115_202109021

    这通常涉及定义服务接口,使用SolrJ进行查询操作,并将结果返回给请求方。 5. **HttpClient调用服务**: HttpClient是Apache的一个Java库,用于执行HTTP请求。在日志中提到的HttpClient被用来调用Taotao-search...

    solrj使用教程

    这个“solrj使用教程”很可能是为了帮助开发者了解如何使用SolrJ来连接、查询和管理Solr索引。下面将详细介绍SolrJ的主要功能和使用方法。 **1. 安装和导入** 首先,你需要通过Maven或Gradle等构建工具将SolrJ库...

    solr-solrj 5.0.0 demo

    查询操作同样简单,可以使用`SolrQuery`类构造查询语句,并通过`server.query()`方法执行。Solr-Solrj支持多种查询语法,包括标准查询、高亮显示、 faceting(分面搜索)等高级功能。 ```java SolrQuery query = ...

    商城项目的搜索功能示例代码-使用solrj.zip

    SolrJ是Apache Solr官方提供的Java客户端库,它允许开发人员方便地与Solr服务器进行交互,包括索引数据、执行查询、处理结果等操作。下面将详细介绍这个示例代码可能涉及的几个关键知识点。 1. **Apache Solr**:...

    SolrJ6.3.0

    开发者可以使用这个库来创建 Solr 客户端实例,发送请求并接收响应,进行索引管理和查询操作。 3. **solr-langid-6.3.0.jar**:这个库包含了语言识别功能,可以帮助 Solr 自动识别文档中的语言,以便进行适当的分词...

    solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar

    SolrJ是Apache Solr项目的Java客户端库,它为与Solr服务器进行交互提供了便利的API。这个压缩包包含了两个版本的SolrJ库:solr-solrj-4.10.3.jar和solr-solrj-5.0.0.jar。这两个版本的差异主要在于对Solr服务器的...

    SolrJ需要的jar包

    3. 测试连接:集成完成后,编写测试用例验证能否成功连接Solr服务器,执行基本的索引和查询操作,确保SolrJ的配置无误。 通过正确地引入和配置这些jar包,你可以利用SolrJ的强大功能,在Java应用中构建高性能的全文...

    Solrj 中文教程

    - **4.4 使用SolrJ创建索引**:介绍如何使用SolrJ创建和管理索引。 ##### 4.5 Solrj包的结构说明 - **4.5.1 CommonsHttpSolrServer**:通过HTTP协议与Solr交互的客户端。 - **4.5.2 Setting XMLResponseParser**:...

    solr在SSM框架中使用(支持中文分词查询)

    接着,我们可以创建一个SolrService类,该类使用SolrServer对象进行索引的增删改查操作。 对于中文分词查询,我们需要在Solr的schema.xml文件中设置字段类型为支持中文分词的类型。例如,使用IK Analyzer,我们需要...

    1.4、solrj的使用_代码开始1

    文档操作是SolrJ中最基本的功能之一,主要包括文档的添加、删除、更新以及查询。 1. **添加文档** ```java public static void addDocument() throws Exception { // 创建与Solr服务器的连接 SolrServer ...

    solr在java中的使用实例代码

    除了添加文档,我们还可以使用SolrJ进行查询操作。`query()`方法用于执行Solr查询,返回一个`QueryResponse`对象,其中包含了查询结果。以下是一个简单的查询示例: ```java public void query(String queryStr) ...

Global site tag (gtag.js) - Google Analytics