Java 使用NativeSearchQueryBuilder随机化Elasticsearch的结果
嗨,我是新的ElasticSearch,我使用的是spring数据。我有两个API,它使用弹性搜索将数据保存在文章和话语模型中,现在当客户端应用程序对文章和话语搜索进行API调用时,它首先给出所有文章,然后给出话语数据。但我想随机化反应我怎么能做到 我的文章示范类如下Java 使用NativeSearchQueryBuilder随机化Elasticsearch的结果,java,
spring-data-elasticsearch,Java,
spring Data Elasticsearch,嗨,我是新的ElasticSearch,我使用的是spring数据。我有两个API,它使用弹性搜索将数据保存在文章和话语模型中,现在当客户端应用程序对文章和话语搜索进行API调用时,它首先给出所有文章,然后给出话语数据。但我想随机化反应我怎么能做到 我的文章示范类如下 @AllArgsConstructor @Data @Document(indexName="articles", createIndex=true) public class Article implements ITResul
@AllArgsConstructor
@Data
@Document(indexName="articles", createIndex=true)
public class Article implements ITResult {
private String id;
private String hostContentId;
private String title;
private List<String> categories;
private String searchResultId;
@Override
public String getSummary() {
return excerpt;
}
@Override
public ContentType getContentType() {
return ContentType.ARTICLE;
}
@Override
public String getHostContentId() {
return hostContentId;
}
@Override
public String getUrl() {
return link;
}
@Override
public String getSearchResultId() {
return searchResultId;
}
public void setSearchResultId(String searchResultId) {
this.searchResultId = searchResultId;
}
}
生成器支持使用SortBuilder对象的.withSort()方法。有一个ScriptSortBuilder子类允许您这样做。请看一下Script类和以下示例:
SearchQuery query = new NativeSearchQueryBuilder().withIndices("articles","course")
.withPageable(new PageRequest(offset,limit))
.withFilter(multiMatchQuery(string, new String[] { "title", "excerpt", "author_name", "link"}))
.build();