xlid 发表于 2017-12-19 10:11:48

4.solr学习速成之bean

  以bean的形式提交索引,以bean的形式查询出来
  

package com.liucheng.solr;  

import java.io.Serializable;  

import org.apache.solr.client.solrj.beans.Field;  

public>private static final long serialVersionUID = 1L;  @Field
private String>@Fieldprivate String name_s;  @Field
private int score_i;public String getId() {return>}public void setId(String>this.id =>}public String getName_s() {return name_s;  }
public void setName_s(String name_s) {this.name_s = name_s;  }
public int getScore_i() {return score_i;  }
public void setScore_i(int score_i) {this.score_i = score_i;  }
  
}
  

  其中field的值必须要在scheme.xml中配置,因为该文件中已经有id和动态field的配置,这里就不用配置
  

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />  
<dynamicField name="*_i"type="int"    indexed="true"stored="true"/>
  
<dynamicField name="*_s"type="string"indexed="true"stored="true" />
  

  测试类:
  

package com.liucheng.solr;  

import java.io.IOException;  

import java.util.List;  

import org.apache.solr.client.solrj.SolrQuery;  

import org.apache.solr.client.solrj.SolrServerException;  

import org.apache.solr.client.solrj.impl.HttpSolrClient;  

import org.apache.solr.client.solrj.response.QueryResponse;  

public>public static void addIndex(){  HttpSolrClient server
= solrServer.getServer();  student stu
= new student();  stu.setId(
"1005");  stu.setName_s(
"wanglc5");  stu.setScore_i(
885);try {  server.addBean(stu);
  server.commit();
  }
catch (SolrServerException | IOException e) {  e.printStackTrace();
  }
  }
public static void delete(){  HttpSolrClient server
= solrServer.getServer();try {  server.deleteById(
"1001");  server.commit();
  }
catch (SolrServerException | IOException e) {  e.printStackTrace();
  }
  }
public static void search(){  HttpSolrClient server
= solrServer.getServer();  SolrQuery query
= new SolrQuery();  query.setQuery(
"*:*");  query.setStart(
0);  query.setRows(
5);  QueryResponse queryResponse;
try {  queryResponse
= server.query(query);  List
<student> list = queryResponse.getBeans(student.class);  System.out.println(
"num = "+list.size());for(int i=0;i<list.size();i++){  System.out.println(list.get(i).getName_s());
  }
  }
catch (Exception e) {  e.printStackTrace();
  }
  }
public static void main(String[] args) {//addIndex();//delete();  
      search();
  }
  
}
  

  solrserver:
  

package com.liucheng.solr;  

import org.apache.solr.client.solrj.impl.HttpSolrClient;  

public>private solrServer(){};final static String SOLR_URL = "http://localhost:8080/solr/test";private static HttpSolrClient server = null;public static HttpSolrClient getServer(){if(server == null){  server
= new HttpSolrClient(SOLR_URL);  server.setDefaultMaxConnectionsPerHost(
1000);  server.setMaxTotalConnections(
10000);  server.setConnectionTimeout(
60000);  server.setSoTimeout(
60000);  server.setFollowRedirects(
false);  server.setAllowCompression(
true);  }
return server;  }
  
}
  
页: [1]
查看完整版本: 4.solr学习速成之bean