solr的客户端调用solrj

本文介绍了一个使用 SolrJ 进行搜索的具体示例,包括如何设置查询条件、分页、排序等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class SolrJUtils {

private static final String baseURL ="http://192.168.241.128:8080/solr";// solr服务器url
private static SolrServer solrServer = newHttpSolrServer(baseURL);

public static void search() {
SolrQuery params = new SolrQuery();
// 查询关键词,*:*代表所有属性、所有值,即所有index
// params.set("q", "*:*");
params.set("q", "nickname:chm*");// 查询nickname是已chm开头的数据

//分页,start=0就是从0开始,,rows=5当前返回5条记录,第二页就是变化start这个值为5就可以了。
params.set("start", 0);
params.set("rows", 5);

// 按nickname排序,asc升序 desc降序
params.set("sort", "nickname asc");

try {
QueryResponse rsp = solrServer.query(params);
SolrDocumentList docs = rsp.getResults();
System.out.println("文档个数:" + docs.getNumFound());
System.out.println("查询时间:" + rsp.getQTime());
for (SolrDocument doc : docs) {
String name = (String) doc.getFieldValue("nickname");
System.out.println(name);
}
} catch (Exception e) {
e.printStackTrace();
}

}

public static void main(String[] args) {
SolrJUtils.search();//实际应用过程中可以根据自身需要传参
}
}


参数

描述

示例

q

Solr中用来搜索的查询。有关该语法的完整描述,请参阅 参考资料。可以通过追加一个分号和已索引且未进行断词的字段(下面会进行解释)的名称来包含排序信息。默认的排序是score desc,指按记分降序排序。

q=myField:Java ANDotherField:developerWorks; dateasc此查询搜索指定的两个字段,并根据一个日期字段对结果进行排序。

start

将初始偏移量指定到结果集中。可用于对结果进行分页。默认值为 0。

start=15 返回从第 15 个结果开始的结果。

rows

返回文档的最大数目。默认值为10。

rows=25,返回25个结果集

fq

提供一个可选的筛选器查询。查询结果被限制为仅搜索筛选器查询返回的结果。筛选过的查询由 Solr进行缓存。它们对提高复杂查询的速度非常有用。

任何可以用 q参数传递的有效查询,排序信息除外。

hl

当 hl=true时,在查询响应中醒目显示片段。默认为 false。参看醒目显示参数(见 参考资料)。

hl=true

fl

作为逗号分隔的列表指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。“score” 指还应返回记分。

*,score

sort

排序,对查询结果进行排序,参考

sort=date asc,pricedesc

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值