如何设计用于搜索索引中任何属性的通用搜索方法

How to design a generic search method for searching through any attribute in an index

如何设计通用搜索方法来搜索索引中的任何属性。我想采用通用 Map 作为我的输入,它允许您描述属性和您打算将其映射到的相应值,我希望输出以分页方式提供。

For example it could be something like, search all User's which has
    gender = 'm' AND first_name starts contains "ack" AND birth_date between 1970 and 1980

我希望使用一个界面来构建它,该界面允许我根据以动态方式提供的输入构建查询。 spring-data-elasticsearch 是否提供任何更高级别的构造来构建此类查询,并且 return 以分页方式产生结果。我该如何处理?

@PostMapping("/search")
public Iterable<User> search(@RequestParam(required = false) Map<String, String> inputs, 
    Pageable pageable) {
    return userService.search(inputs, pageable);
}

请检查 the documentation,第 7.6 节,“查询”

这部分的 link 似乎已损坏,因此请单击 7.5 并向下滚动一点。

描述了 Spring Data Elasticsearch 提供的 3 种可能性(CriteriaQueryStringQueryNatveSearchQuery)。