spring数据ElasticSearch查询

vsmadaxz  于 2021-06-13  发布在  ElasticSearch
关注(0)|答案(1)|浏览(335)

在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数据功能

mcvgt66p

mcvgt66p1#

您将需要使用通配符或别名进行搜索,并在编写时使用bean生成的索引名。
我最近写了一篇博客文章,介绍了如何使用索引模板使用SpringDataElasticSearch4.1实现这一点。

相关问题