【问题标题】:Spring data elastic search with sort not working带有排序的Spring数据弹性搜索不起作用
【发布时间】:2018-07-17 20:32:30
【问题描述】:

我正在使用弹性搜索数据库和弹簧数据。 以下是我正在搜索的文档,该搜索结果应返回 sortedpageable 列表。

@Data
@EqualsAndHashCode(exclude = { "id" })
@Document(indexName = "job", type = "job")
public class JobDocument implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    private String id;

    @Field(type = FieldType.String, index = FieldIndex.analyzed, store = true)
    private String name;

    @Field(type = FieldType.String, index = FieldIndex.analyzed, store = true)
    private String desc;

    @Field(type = FieldType.Date, store = true)
    private LocalDateTime dateTime; // java.Time
}

我正在 desc 字段中搜索文本,并希望按 dateTime 字段对其进行排序。我的搜索服务执行以下操作,

BoolQueryBuilder queryBuilder = boolQuery();
queryBuilder.must(QueryBuilders.queryStringQuery("*" + desc + "*").lenient(true).field("desc"));
NativeSearchQueryBuilder searchQuery = new NativeSearchQueryBuilder();
searchQuery.withPageable(pageable);
searchQuery.withSort(SortBuilders.fieldSort("dateTime")
.order(SortOrder.DESC))
searchQuery.withQuery(queryBuilder);
Page<JobDocument> jobs = jobRepo.search(searchQuery.build());

以下是我的回购,

public interface JobDAO extends ElasticsearchRepository<JobDocument, String>
{}

搜索和分页功能正常,但排序不工作。 我错过了什么吗?

【问题讨论】:

  • 为什么要对分析的字段进行排序?
  • 那是错字。我已经编辑了问题。
  • @PrashantShilimkar 你找到解决方案了吗?我也有同样的问题
  • 没有。还没有。看起来没人知道:D

标签: elasticsearch spring-data-elasticsearch


【解决方案1】:

它们是可分页对象中可用的排序选项。您可以将它们添加到单个对象PageRequest中,而不是单独使用排序和分页。

BoolQueryBuilder queryBuilder = boolQuery();
queryBuilder.must(QueryBuilders.queryStringQuery("*" + desc + "*").lenient(true).field("desc"));
NativeSearchQueryBuilder searchQuery = new NativeSearchQueryBuilder();
searchQuery.withPageable(new PageRequest(0, 10, Sort.Direction.DESC, "dateTime"));
searchQuery.withQuery(queryBuilder);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多