Java Google Web搜索API为不同搜索中的相同查询字符串返回随机结果
大家好,我正在从事的项目中,我使用谷歌网络搜索API进行网络搜索。它以随机方式工作,在不同的搜索中为同一查询字符串生成不同的结果集。问题是什么。 请尽快回复。我只是从特定的网站过滤结果的建议。 这是我的WebSearch代码。 "Java Google Web搜索API为不同搜索中的相同查询字符串返回随机结果,java,json,gson,google-search-api,Java,Json,Gson,Google Search Api,大家好,我正在从事的项目中,我使用谷歌网络搜索API进行网络搜索。它以随机方式工作,在不同的搜索中为同一查询字符串生成不同的结果集。问题是什么。 请尽快回复。我只是从特定的网站过滤结果的建议。 这是我的WebSearch代码。 " 公共映射getSearchArray(字符串搜索\u键)引发异常 { Reader=null; GoogleResults=null; URL=null; int指数=0; int result_size=0; 映射搜索结果映射=新HashMap(); 试一试{ lo
公共映射getSearchArray(字符串搜索\u键)引发异常
{
Reader=null;
GoogleResults=null;
URL=null;
int指数=0;
int result_size=0;
映射搜索结果映射=新HashMap();
试一试{
logger.info(“内部GetSearch”);
对于(int i=0;i<20;i=i+4){
字符串google=”http://ajax.googleapis.com/ajax/services/search/web?v=1.0&start=“+i+”&q=“;
字符串charset=“UTF-8”;
url=新url(google+URLEncoder.encode(搜索键,字符集));
reader=新的InputStreamReader(url.openStream(),字符集);
results=new Gson().fromJson(reader,GoogleResults.class);
//info(“resultSize:+results.getResponseData().getResults().size());
//系统输出打印项次(“总计”+t);
if(results.getResponseData().getResults().size()!=0){
结果_size=results.getResponseData().getResults().size();
}否则{
结果_大小=1;
}
对于(int m=0;m
public Map getSearchArray(String search_key) throws Exception
{
Reader reader = null;
GoogleResults results = null;
URL url = null;
int index=0;
int result_size=0;
Map search_result_map = new HashMap();
try {
logger.info("Inside GetSearch");
for (int i = 0; i < 20 ; i=i+4) {
String google = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&start="+i+"&q=";
String charset = "UTF-8";
url = new URL(google + URLEncoder.encode(search_key, charset));
reader = new InputStreamReader(url.openStream(), charset);
results = new Gson().fromJson(reader, GoogleResults.class);
//logger.info("resultSize: "+results.getResponseData().getResults().size());
//System.out.println("total"+t);
if (results.getResponseData().getResults().size()!=0) {
result_size = results.getResponseData().getResults().size();
} else {
result_size = 1;
}
for (int m = 0; m <result_size; m++)
{
String a=results.getResponseData().getResults().get(m).getUrl();
System.out.println(a);
if(a.matches(".*food.Some-Website.*")
||a.matches(".*Some-Website.*")
||a.matches(".*Some-Website.*")
||a.matches(".*Some-Website.*")
{
logger.info("----I----"+i+"----M----"+m);
String title = results.getResponseData().getResults().get(m).getTitle().replaceAll("\\<[^>]*>","");
String url_link = results.getResponseData().getResults().get(m).getUrl();
String embeded_link = createEmbeddedLink(url_link, title, "http");
search_result_map.put("link_"+index, embeded_link);
search_result_map.put("title_"+index, title);
index++;
logger.info("Title "+title);
}
else
{
System.out.println("No Url");
}
}
}
} catch (Exception e)
{
logger.info("Exception Thrown");
}
finally {
return search_result_map;
}
}