我正在使用ElasticSearch来构建一个显示书籍列表的应用程序。每本书都可以标记为收藏。该页面将在当前用户的结果列表顶部显示收藏的书籍。
这是一些物件
public class User {
private String id;
private String name;
//getters/setters
}
文档
public class Book
{
private String name;
private List<User> favoriteOfUsers;
//getters/setters
}
我想搜索列表并命令它们在结果列表的顶部获得当前用户的收藏书籍。请告诉我如何为该用例构建解决方案?
我认为您正在从Elasticsearch寻找排序选项:https : //www.elastic.co/guide/zh/elasticsearch/reference/current/search-request-sort.html
假设将喜欢某本书的用户存储为“书籍”文档中的嵌套列表,您可能正在寻找nested_filter
在Elasticsearch的选项中使用该选项sort
:
"sort" : [
{
"book" : {
"mode" : "avg",
"order" : "asc",
"nested_path" : "favouriteOfUsers",
"nested_filter" : {
"term" : { "favouriteOfUsers.id" : 1234 }
}
}
}
]
希望这能为您指明正确的方向。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句