参数 | 描述 | 示例 |
q | Solr中用来搜索的查询。有关该语法的完整描述,请参阅 | q=myField:Java ANDotherField:developerWorks; dateasc此查询搜索指定的两个字段,并根据一个日期字段对结果进行排序。 |
start | 将初始偏移量指定到结果集中。可用于对结果进行分页。默认值为 0。 | start=15 |
rows | 返回文档的最大数目。默认值为10。 | rows=25,返回25个结果集 |
fq | 提供一个可选的筛选器查询。查询结果被限制为仅搜索筛选器查询返回的结果。筛选过的查询由 Solr进行缓存。它们对提高复杂查询的速度非常有用。 | 任何可以用 q参数传递的有效查询,排序信息除外。 |
hl | 当 hl=true时,在查询响应中醒目显示片段。默认为 false。参看醒目显示参数(见 | hl=true |
fl | 作为逗号分隔的列表指定文档结果中应返回的 Field 集。默认为 “*”,指所有的字段。“score” 指还应返回记分。 | *,score |
sort | 排序,对查询结果进行排序,参考 | sort=date asc,pricedesc |
solr的客户端调用solrj
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();//实际应用过程中可以根据自身需要传参
}
}