搜索索引
public void testSearch() throws SolrServerException {
SolrServer solr = new HttpSolrServer(urlString);
// 查询对象
SolrQuery query = new SolrQuery();
//设置查询条件,名称“q”是固定的且必须 的
//搜索product_keywords域,product_keywords是复制域包括produ ct_name和
product_description query.set("q", "product_keywords:java教程");
// 请求查询
QueryResponse response = solr.query(query);
// 查询结果
SolrDocumentList docs = response.getResults();
// 查询文档总数
System.out.println("查询文档总数" + docs.getNumFound());
for (SolrDocument doc : docs) {
//商品主键
String id = (String) doc.getFieldValue("id");
//商品名称 Solr 全文检索服务 :
String product_name = (String) doc.getFieldValue("product_name");
//商品价格
Float product_price = (Float) doc.getFieldValue("product_price");
//商品图片
String product_picture = (String) doc.getFieldValue("product_picture");
//商品分类
String product_catalog_name = (String) doc.getFieldValue("product_catalog_name"); System.out.println("=============================");
System.out.println(id); System.out.println(product_name);
System.out.println(product_price); System.out.println(product_picture);
System.out.println(product_catalog_name);
}
}
组合查询
// 根据商品分类、价格范围、关键字查询,查询结果按照价格降序排序
public void testSearch2() throws SolrServerException {
SolrServer solr = new HttpSolrServer(urlString);
// 查询对象
SolrQuery query = new SolrQuery();
// 搜索product_keywords域,product_keywords是复制域包括product_name 和product_description
// 设置商品分类、关键字查询 Solr 全文检索服务 :
// query.set("q", "product_keywords:挂钩 AND product_catalog_name:幽默杂货");
query.setQuery("product_keywords:挂钩 AND product_catalog_name:幽默杂货");
// 设置价格范围
query.set("fq", "product_price:[1 TO 20]"); //[]表示包含1和20 ,{}表示不包含1和20
// 查询结果按照价格降序排序
// query.set("sort", "product_price desc");
query.addSort("product_price", ORDER.desc);
// 请求查询
QueryResponse response = solr.query(query);
// 查询结果
SolrDocumentList docs = response.getResults();
// 查询文档总数
System.out.println("查询文档总数" + docs.getNumFound());
for (SolrDocument doc : docs) {
// 商品主键
String id = (String) doc.getFieldValue("id");
// 商品名称
String product_name = (String) doc.getFieldValue("product_name");
// 商品价格
Float product_price = (Float) doc.getFieldValue("product_price");
// 商品图片
String product_picture = (String) doc .getFieldValue("product_picture");
// 商品分类
String product_catalog_name = (String) doc .getFieldValue("product_catalog_name"); System.out.println("=============================");
System.out.println("id=" + id);
System.out.println("product_name=" + product_name);
System.out.println("product_price=" + product_price);
System.out.println("product_picture=" + product_picture);
System.out.println("product_catalog_name=" + product_catalog_name);
}
}