public class UserInfoDao {
//创建域的方式(创建索引||写入 lucene,查询只能查到这里面的被创建索引文件了的数据)
public void addIndex() throws SolrServerException, IOException{
HttpSolrServer server=SolrServer.getInstance ().getServer ();
SolrInputDocument doc= new SolrInputDocument();
doc.addField( "sNo", "6" );
doc.addField( "sName", "都敏俊星星" );
SolrInputDocument doc1= new SolrInputDocument();
doc1.addField( "sNo", "7" );
doc1.addField( "sName", "千颂伊星星" );
SolrInputDocument doc2= new SolrInputDocument();
doc2.addField( "sNo", "8" );
doc2.addField( "sName", "星星" );
Collection<SolrInputDocument> docs= new ArrayList<SolrInputDocument>();
docs.add(doc);
docs.add(doc1);
docs.add(doc2);
server.add(docs);
server.commit();
}
//删除索引文件
public void delteIndex(){
try {
HttpSolrServer server=SolrServer.getInstance ().getServer ();
server.deleteByQuery( "*:*");
server.commit();
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
/**
* 模糊查询
*/
public List<UserInfo> searchUserInfoList(String userName,int i){
List<UserInfo> list= new ArrayList<UserInfo>();
UserInfo user= null;
HttpSolrServer server=SolrServer.getInstance ().getServer ();
SolrQuery sQuery= new SolrQuery();
try {
String para= "";
if(!userName.isEmpty()){
para=para+ "sName:"+userName;
}
//执行 solr模糊查询方法
sQuery.setQuery(para);
sQuery.setStart(i); //设置"其实位置":表示从结果集的第几条数据开始显示。默认下标是0开始
sQuery.setRows(2); //设置每页显示的行数
QueryResponse response;
response = server.query(sQuery); //query是( solr自带的方法)
//查询的结果由doc文档对象返回给UserInfo对象。放到list存到作用域带回 jsp
SolrDocumentList slist=response.getResults();//获取按条件查询筛选后的结果( solr自带的方法)
for (SolrDocument solrDocument : slist) {
user= new UserInfo();
//获取文档里面的userName字段的value
user.setSname(solrDocument.getFirstValue("sName").toString());
/*user.setSage(Integer.parseInt(solrDocument.getFirstValue("sAge").toString()));*/
list.add(user); //把筛选中的值放到实体类列表里面
}
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return list;
}
}