Java_ABC_7.連接Solr,查詢數據

 
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;
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章