有没有办法使用 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
,这将提供您预期的搜索结果,这意味着书籍从任一开始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);
使用 QueryBuilders.prefixQuery 我正在尝试获取以 开头的书名列表"L" 或 "J"[=20=] 有什么办法可以实现吗? 我知道 QueryBuilders.prefixQuery 只能接受像 boolQueryBuilder.must(QueryBuilders.prefixQuery("bookTitle", "L")); 这样的字符串 还有其他简单的方法可以实现吗?
您可以使用布尔子句 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);