java怎么调用solr查询接口

2024-11-28 10:27:13
推荐回答(2个)
回答1:

solr官方网站 http://lucene.apache.org/solr/
下面是一个例子:

import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.params.ModifiableSolrParams;
import java.net.MalformedURLException;

public class Main {
public static void main(String[] args) throws MalformedURLException, SolrServerException {

SolrServer server = new CommonsHttpSolrServer("http://localhost:8080/solr");

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

// 排序,,如果按照id 排序,,那么将score desc 改成 id desc(or asc)
params.set("sort", "score desc");

// 返回信息 * 为全部 这里是全部加上score,如果不加下面就不能使用score
params.set("fl", "*,score");

QueryResponse response = server.query(params);
// 搜索得到的结果数
System.out.println("Find:"+ response.getResults().getNumFound()+"\n\n");

// 输出结果
for(SolrDocument doc:response.getResults())
{
System.out.println("id: " + doc.getFieldValue("id").toString());
System.out.println("title: " + doc.getFieldValue("title").toString()+"\n");
}
}

}

回答2:

httpconnection
直接传入 solr API 相对应的地址