gpt4 book ai didi

java - 使用 Java 中的 Customsearch 搜索恰好包含两个给定字符串的页面

转载 作者:太空宇宙 更新时间:2023-11-04 13:03:20 25 4
gpt4 key购买 nike

我在 Java 应用程序中使用 google-api-services-customsearch v1-rev46-1.21.0 来查找包含两个确切字符串的页面。

假设我有两个名字:Bill GatesSteve Jobs,并且我想找到提及这两个名字的所有页面。如果我使用 Google 搜索页面,我将运行以下查询:

"Bill Gates" "Steve Jobs"

(请注意,我没有使用 + 符号,因为它不再是有效的运算符)。

我想通过 Java 进行同样精确的搜索,但我找不到让它工作的方法。有什么建议吗?请在下面找到一个最小工作示例(API_KEYSEARCH_ENGINE_ID 已经过测试并且正确):

public class Example {

private static String name1 = "Bill Gates";
private static String name2 = "Steve Jobs";

public static void main(String[] args) throws IOException {
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
Customsearch customsearch = new Customsearch(httpTransport, jsonFactory, null);
Customsearch.Cse cse = customsearch.cse();

String format = String.format("\"%s\" \"%s\"", name1, name2);
Customsearch.Cse.List request = cse.list(format);
request.setKey(Consts.API_KEY);
request.setCx(Consts.SEARCH_ENGINE_ID);

Search search = request.execute();
List<Result> results = search.getItems();
if (null != results) {
for (Result result : results) {
System.out.println("* " + result.getLink());
System.out.println(result.getSnippet());
System.out.println();
}
}
}
}

获得一些结果(不为空)的唯一方法是将查询更改为:

Bill Gates Steve Jobs

这意味着“找到以任何顺序包含一个或多个上述单词的任何页面,这不是我想要做的。”非常感谢您提供的任何解决方案或有用的文档。

<小时/>

我刚刚意识到上面的代码可以完美地与比尔盖茨和史蒂夫乔布斯等大人物一起使用,但它不适用于其他不太出名的人的名字。是否意味着当前的自定义搜索引擎没有找到结果时返回null?如果是这样,为什么在 Google 网站上运行查询时会得到很多结果?

最佳答案

我作为最小工作示例发布的代码是正确的。我没有得到结果的原因是我在 Google 控制面板中对 Customsearch 引擎设置了许多限制(即:没有来自 LinkedIn、Facebook、Twitter 等的结果)。当我放松约束时,我得到了想要的结果。

关于java - 使用 Java 中的 Customsearch 搜索恰好包含两个给定字符串的页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34723439/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com