代码之家  ›  专栏  ›  技术社区  ›  Mohamed NAOUALI

有没有使用elasticsearchjavaapi使用多前缀的方法?

  •  0
  • Mohamed NAOUALI  · 技术社区  · 4 年前

    使用 QueryBuilders.prefixQuery 我正试着找出以以下开头的书名列表 L J 有什么方法可以做到这一点吗? 我知道QueryBuilders.prefixQuery只能接受以下字符串 boolQueryBuilder.must(QueryBuilder.prefixQuery(“bookTitle”,“L”)); 还有其他简单的方法可以实现吗?

    0 回复  |  直到 4 年前
        1
  •  1
  •   Amit    4 年前

    您可以使用boolean子句 should 并将两个前缀查询结合起来 L 一个为 J 这将提供您预期的搜索结果,意味着书籍的开头可以是 L J .

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

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