【发布时间】:2021-03-09 16:31:49
【问题描述】:
我在 elasticsearch 中每天都有多个索引,我正在使用 ElasticsearchRepository 来查询我的文档。文件定义:
@Getter
@Setter
@Document(indexName = "fraud-hub-digital-transactions-#{T(java.time.LocalDate).now().toString()}", createIndex = false)
@TypeAlias("fraud-hub-digital-transactions")
public class FraudDigitalTransactions {
@Id
@Field(name = "transaction_key",type = FieldType.Long)
private Long transactionId;
@Field(name = "client_no",type = FieldType.Integer)
private Integer clientNo;
}
我的索引将使用此定义为每一天动态创建
@Document(indexName = "fraud-hub-digital-transactions-#{T(java.time.LocalDate).now().toString()}"
我的存储库定义:
@Repository
public interface FraudDigitalTransactionsRepository extends ElasticsearchRepository<FraudDigitalTransactions,String> {
List<FraudDigitalTransactions> findByClientNo(Integer clientNo);
}
当我通过客户端查询时,不只是返回当前日期值。
@Test
public void testFindByClientNo() {
List<FraudDigitalTransactions> fraudDigitalTransactions = fraudDigitalTransactionsRepository.findByClientNo(88019237);
Assert.assertNotEquals(fraudDigitalTransactions.size(),0);
}
测试失败。返回的当天值未搜索所有索引。 可能是 Spring 数据在当前索引中搜索文档。 spring 数据有什么方法可以搜索所有索引吗?我可以使用 elasticsearch 高级客户端,但我想使用 spring 数据功能
【问题讨论】:
标签: java spring spring-boot elasticsearch spring-data-elasticsearch