Spring 多索引数据elasticsearch查询
Spring data elasticsearch query on multiple indices
我每天在 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 数据特征
您将需要使用通配符或别名进行搜索,并在编写时使用 bean 生成的索引名称。
我最近写了一篇 blog post 如何使用 Spring Data Elasticsearch 4.1 使用索引模板来做到这一点。
我每天在 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 数据特征
您将需要使用通配符或别名进行搜索,并在编写时使用 bean 生成的索引名称。
我最近写了一篇 blog post 如何使用 Spring Data Elasticsearch 4.1 使用索引模板来做到这一点。