使用Java中的Customsearch搜索完全包含两个给定字符串的页面

使用Java中的Customsearch搜索完全包含两个给定字符串的页面,java,google-custom-search,Java,Google Custom Search,我在Java应用程序中使用google api services customsearchv1-rev46-1.21.0查找包含两个精确字符串的页面 假设我有两个名字,billgates和stevejobs,我想找到所有提到这两个名字的页面。如果我使用谷歌搜索页面,我会运行以下查询: "Bill Gates" "Steve Jobs" (注意,我没有使用+符号,因为它不再是有效的运算符) 我希望通过Java进行同样的精确搜索,但我找不到一种方法使其工作。有什么建议吗?请在下面找到一个最小工作示

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

假设我有两个名字,
billgates
stevejobs
,我想找到所有提到这两个名字的页面。如果我使用谷歌搜索页面,我会运行以下查询:

"Bill Gates" "Steve Jobs"
(注意,我没有使用
+
符号,因为它不再是有效的运算符)

我希望通过Java进行同样的精确搜索,但我找不到一种方法使其工作。有什么建议吗?请在下面找到一个最小工作示例
API\u KEY
SEARCH\u-ENGINE\u-ID
已经过测试且正确):

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



我刚刚意识到,上面的代码适用于像
比尔·盖茨
史蒂夫·乔布斯
这样的大名鼎鼎的人,但不适用于其他不太出名的人。这是否意味着当前customsearch引擎在未找到任何结果时返回null?如果是这样的话,为什么我在谷歌网站上运行查询时会得到很多结果?

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

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

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