有没有办法使用 elasticsearch java api 来使用多重前缀?

is there way to use multiprefix using elasticsearch java api?

使用 QueryBuilders.prefixQuery 我正在尝试获取以 开头的书名列表"L""J"[=​​20=] 有什么办法可以实现吗? 我知道 QueryBuilders.prefixQuery 只能接受像 boolQueryBuilder.must(QueryBuilders.prefixQuery("bookTitle", "L")); 这样的字符串 还有其他简单的方法可以实现吗?

您可以使用布尔子句 should 并组合两个前缀查询,一个用于 L,一个用于 J,这将提供您预期的搜索结果,这意味着书籍从任一开始LJ.

在 java 代码中,它将如下所示:

        BoolQueryBuilder boolQueryBuilder = new BoolQueryBuilder();
        PrefixQueryBuilder lPrefixQueryBuilder = new PrefixQueryBuilder("title","L");
        PrefixQueryBuilder jPrefixQueryBuilder = new PrefixQueryBuilder("title","J");
        boolQueryBuilder.should(lPrefixQueryBuilder);
        boolQueryBuilder.should(jPrefixQueryBuilder);