我有一个弹簧启动API,它有三个模型(用户、项目、技能(,目前我可以搜索任何索引而不会出现问题,如下所示:
log.info("Search with query {}", query);
Pageable pageable = PageRequest.of(page, size);
QueryBuilder queryBuilder =
QueryBuilders
.multiMatchQuery(query, "projectDescription", "projectName", "projectTechStack")
.fuzziness(Fuzziness.ONE);
Query searchQuery = new NativeSearchQueryBuilder()
.withFilter(queryBuilder)
.withPageable(pageable)
.build();
SearchHits<UserProjects> projectHits =
elasticsearchOperations
.search(searchQuery, UserProjects.class,
IndexCoordinates.of(elasticProjectsIndex));
然而,我想搜索所有三个索引,并将它们映射到正确的POJO。我很纠结。此外,这也是我陷入困境的地方,我想有一个分页的响应,其中包含以下内容:
User results: 3 of 100
Project Results 4 of 10
etc etc
基本上,在我的前端,我可以知道我是否应该显示一个";点击这里获取更多用户结果";链接,该链接将仅在用户索引上运行搜索。
如果有人能帮我,那就太棒了。
感谢
如果用户想要跨多个维度/索引进行搜索,那么MultiSearch将非常有用。
示例用法:用户可以亲自搜索"java"、文章&作业索引(在领英类型的应用程序中(,并且能够为每个请求配置分页。