solrj 怎么样把查询数据返回到前端
展开全部
1、首先,我比较懒。我把 apache-solr-3.6.1/dist 目录下所有的包导入到了工程中,除了war包。
2、下面来看看代码,里面都有注释,其它就不多说了
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
public class SolrJUtils {
private static final String baseURL = "http://192.168.241.128:8080/solr";// solr服务器url
private static SolrServer solrServer = new HttpSolrServer(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();//实际应用过程中可以根据自身需要传参
}
}
好了,一般开发都是用查询功能的,索引的更新基本上都是使用
crond。
2、下面来看看代码,里面都有注释,其它就不多说了
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
public class SolrJUtils {
private static final String baseURL = "http://192.168.241.128:8080/solr";// solr服务器url
private static SolrServer solrServer = new HttpSolrServer(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();//实际应用过程中可以根据自身需要传参
}
}
好了,一般开发都是用查询功能的,索引的更新基本上都是使用
crond。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询