docs: static String search(String word) {
  		word = word.replaceAll(" ", "+");
  		String u;
  		if(isUseBaidu)
  			u = URL_BAIDU.replace("${wd}", word);
  		else
  			u = URL_GOOGLE.replace("${wd}", word);
  		URL url;
  		try {
  			url = new URL(u);
  		} catch (MalformedURLException e2) {
  			// TODO Auto-generated catch block
  			e2.printStackTrace();
  			return null;
  		}
  
  		InputStream istream = null;
  		while (true) {
  			try {
  				HttpURLConnection conn = (HttpURLConnection) url
  						.openConnection();
  				istream = conn.getInputStream();
  				break;
  			} catch (IOException e) {
  				try {
  					Thread.sleep(500);
  				} catch (InterruptedException e1) {
  
  				}
  			}
  		}
  
  		StringBuilder sb = new StringBuilder();
  		try {
  			BufferedReader reader = new BufferedReader(new InputStreamReader(
  					istream, "utf-8"));
  			while (true) {
  				String buf = reader.readLine();
  				if (null == buf)
  					break;
  				sb.append(buf);				
  			}
  		} catch (IOException e) {
  
  		}
  		String htmlStr =sb.toString();
  		//stripping script tags whether the tag contains "/n" or "/r" or not.   
  		Matcher m_script = p_script.matcher(htmlStr);   
  		htmlStr = m_script.replaceAll("");   
  
  		//stripping style tags whether the tag contains "/n" or "/r" or not.   
  		Matcher m_style = p_style.matcher(htmlStr);   
  		htmlStr = m_style.replaceAll("");   
  
  		//stripping html tags but continue to have the "/n" and "/r" in right place.   
  		Matcher m_html = p_html.matcher(htmlStr);   
  		htmlStr = m_html.replaceAll("");   
  		
  		htmlStr = htmlStr.replaceAll("(&amp;|&nbsp;|&#9654|&copy|◆|&#12288;|&gt;|&lt;)+", " ");
  		if(isUseBaidu)
  			htmlStr = htmlStr.replaceAll("(百度|_|搜索|\\.\\.\\.|-|2012|2011)", " ");
  		htmlStr = htmlStr.replaceAll(String.valueOf(((char)12288))," ");
  		htmlStr = htmlStr.replaceAll(" +", " ");
  		
  		return htmlStr;   
  
  	}