我正在尝试使用方法名构建一个Elasticsearch查询,并且只想了解如果其中一个属性有多个字段,那么方法名是什么
@MultiField(
mainField = @Field(type = Text, fielddata = true),
otherFields = {
@InnerField(suffix = "keyword", type = Keyword)
}
)
private String resourceType;我需要“关键字”类型(非分析),这样我就可以用整个字符串搜索它。
我试过了
List<Event> findByResourceType_KeywordIsIn(Collection<String> list);并得到跟随错误
No property keyword found for type String! Traversed path: Event.resourceType.不管怎么说,我可以告诉,它是针对同一个属性(除了一个InnerField )的吗?
P.S:我当然可以使用@Query或者使用NativeSearchQueryBuilder构建整个查询,但是如果我只需要一个方法名就可以实现它(少代码、少->、少单元测试:)
谢谢
发布于 2019-08-22 06:09:01
这将不适用于存储库实现的方法名称。执行解析的Spring数据中的逻辑使用java类的(可能是嵌套的)属性,而需要有一个查询搜索resourceType.keyword Elasticsearch字段。
因此,正如您已经写过的,您需要一个@Query来完成这个任务。
https://stackoverflow.com/questions/57597498
复制相似问题