package solrj;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.ArrayList;
import java.util.Collection;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
public class LinkSolrJ
{
private SolrServer m_server = null;
private Collection<SolrInputDocument> m_docs = null;
public LinkSolrJ(String url) throws MalformedURLException
{
//創建一個SolrSever實例
m_server = getSolrServer(url);
m_docs = new ArrayList<SolrInputDocument>();
}
//如果是遠程服務
public SolrServer getSolrServer(String url) throws MalformedURLException
{
return new CommonsHttpSolrServer(url);
}
//向Solr添加數據文檔Document
public void addData(int _id, String _nickname, String _email, String _fullname,String _sms )
throws SolrServerException, IOException
{
//構造一個文檔
SolrInputDocument doc = new SolrInputDocument();
doc.addField( "id", _id);
doc.addField( "mysql_search", _nickname);
doc.addField( "mysql_search", _email);
doc.addField( "mysql_search", _fullname);
doc.addField( "mysql_search", _sms);
m_docs.add(doc);
}
public void commitDocs() throws SolrServerException, IOException
{
if(!m_docs.isEmpty())
{
//添加文檔列表
m_server.add( m_docs );
//提交
m_server.commit();
}
}
public SolrDocumentList searchDataInSolr(String _query) throws SolrServerException
{
//構建一個Solr查詢
String pre = "mysql_search:";
SolrQuery query = new SolrQuery();
query.setQuery( pre + _query );
System.out.println("生成查詢!");
//查詢sever,結果保存於QueryResponse對象
QueryResponse queryResponse = m_server.query( query );
System.out.println("進行查詢!");
//返回結果
SolrDocumentList docList =queryResponse.getResults();
return docList;
}
}
Java_ABC_7.連接Solr,查詢數據
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.