您的位置:首页 > 其它

solrJ笔记(1)

2016-06-07 17:52 211 查看

solr for java增删改查+分页+高亮的demo

注:solr部署在tomcat下,有关部署的问题详见:http://blog.csdn.net/disiwei1012/article/details/51610571

实体

public class Article {
@Field(value="id")
private int id ;

@Field(value="title")
private String title;

@Field(value="content")
private String content;

@Field(value="price")
private double price;

@Field(value="name")
private String name;

public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}

public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}


增删改查

/*
*
* solrJava CRUD
*
*/
public class SolrJ {

@Test
public void addIndex()throws Exception{
String urlString = "http://localhost:8080/solr";
SolrServer solr = new HttpSolrServer(urlString);

//the third method that add document
List<Article> list = new ArrayList<Article>();
Article article = null;
for(int i=20;i<=25;i++){
article = new Article();
article.setId(i);
article.setName("dqf");
article.setTitle("高大上");
article.setContent("白富美");
article.setPrice(19);
list.add(article);
}
//注意是addBeans不是addBean
solr.addBeans(list);

/*the first method that add document
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", "751328118");
doc.addField("name", "dqf");
doc.addField("content", "很好的一个名字");
solr.add(doc);*/

/*the second method that add document
Article article = new Article();
article.setId(10);
article.setName("dmz");
article.setContent("你好");
article.setTitle("xyz");
article.setPrice(20);

solr.addBean(article);*/

solr.commit();
}

@Test
public void delIndex()throws Exception{
String urlString = "http://localhost:8080/solr";
SolrServer solr = new HttpSolrServer(urlString);
solr.deleteById("751328118");
solr.commit();
}

public void updateIndex()throws Exception{

}

@Test
public void findIndex() throws SolrServerException{
String urlString = "http://localhost:8080/solr";
SolrServer solr = new HttpSolrServer(urlString);

SolrQuery solrParams = new SolrQuery();
solrParams.setQuery("name:dqf");

//分页
solrParams.setStart(0);
solrParams.setRows(2);

//开启高亮
solrParams.setHighlight(true);
//设置高亮的显示格式
solrParams.setHighlightSimplePre("<font color='red'>");
solrParams.setHighlightSimplePost("</font>");

//需要哪几个字段进行高亮
solrParams.setParam("hl.fl", "name");
QueryResponse queryResponse = solr.query(solrParams);

//返回高亮之后的结果
SolrDocumentList docList = queryResponse.getResults();
/*for(SolrDocument solrDocument:docList){
Object id = solrDocument.get("id");
Object name = solrDocument.get("name");
Object content = solrDocument.get("content");
Object price = solrDocument.get("price");
}*/

//放回所有的结果
Map<String,Map<String,List<String>>> maplist = queryResponse.getHighlighting();
for(SolrDocument solrDocument:docList){
Object id = solrDocument.get("id");
System.out.println(id);
Map<String, List<String>> fieldMap = maplist.get(id);
List<String> stringList = fieldMap.get("name");
System.out.println(stringList);
}
}
}


源码下载地址:http://pan.baidu.com/s/1nuT2LhJ
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息