所以,我有一个scanexpression,它根据传入的查询返回博客列表。
例如,当我传入查询字符串“java”时,它将返回blog“starting out with java”。
但是,如果传递查询字符串“javatutorials”,则不会返回任何内容。所以基本上,我希望博客是包含“java”或“tutorial”的返回。
public List<BlogDetailsEntity> searchBlogs(String query) {
try {
DynamoDBScanExpression scanExpression = new DynamoDBScanExpression();
scanExpression.addFilterCondition("title", new Condition()
.withComparisonOperator(ComparisonOperator.CONTAINS)
.withAttributeValueList(new AttributeValue().withS(query.toLowerCase())));
return dynamoDBMapper.scan(BlogDetailsEntity.class, scanExpression);
} catch (Exception ex) {
log.error("failed to get blogs > " + query);
}
return null;
}
1条答案
按热度按时间epggiuax1#
要查询dynamodb数据,您应该了解如何使用awsdkforjavav2api和增强的客户机。您的代码是旧版本1,amazonsdk团队推荐使用v2。
AWSSDKforJava2.x是对1.x版代码库的主要重写。它构建在Java8+之上,并添加了几个经常请求的特性。其中包括对非阻塞i/o的支持,以及在运行时插入不同http实现的能力。
有关增强型客户端的更多信息,请参见:
dynamodb表中的Map项
使用增强的客户机,可以使用表达式对象来获取所需的结果集。要查看使用v2和增强型客户机检索数据的不同方法,请参阅以下代码示例。
https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/dynamodb/src/main/java/com/example/dynamodb/enhancedscanrecordswithexpression.java
如果您不熟悉aws java v2 api,请参阅《java v2开发人员指南》中的此文档主题:
开始使用AWSSDKforJava2.x
使用dynamodb2api,您可以执行您的用例。给这张table。
我可以使用以下java代码调出标题中“问题”一词的记录:
还有-我注意到你在Spring Boot上贴了标签。要了解如何编写使用dynamodb api v2的spring boot web应用程序,请参阅:
创建dynamodbweb应用程序项跟踪器