首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Elasticsearch + Spring引导:从带有@InnerField/@MultiField的属性的方法名创建查询

Elasticsearch + Spring引导:从带有@InnerField/@MultiField的属性的方法名创建查询
EN

Stack Overflow用户
提问于 2019-08-21 18:37:36
回答 1查看 389关注 0票数 0

我正在尝试使用方法名构建一个Elasticsearch查询,并且只想了解如果其中一个属性有多个字段,那么方法名是什么

代码语言:javascript
运行
复制
    @MultiField(
            mainField = @Field(type = Text, fielddata = true),
            otherFields = {
                    @InnerField(suffix = "keyword", type = Keyword)
            }
    )
    private String resourceType;

我需要“关键字”类型(非分析),这样我就可以用整个字符串搜索它。

我试过了

代码语言:javascript
运行
复制
List<Event> findByResourceType_KeywordIsIn(Collection<String> list);

并得到跟随错误

代码语言:javascript
运行
复制
No property keyword found for type String! Traversed path: Event.resourceType.

不管怎么说,我可以告诉,它是针对同一个属性(除了一个InnerField )的吗?

P.S:我当然可以使用@Query或者使用NativeSearchQueryBuilder构建整个查询,但是如果我只需要一个方法名就可以实现它(少代码、少->、少单元测试:)

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-08-22 06:09:01

这将不适用于存储库实现的方法名称。执行解析的Spring数据中的逻辑使用java类的(可能是嵌套的)属性,而需要有一个查询搜索resourceType.keyword Elasticsearch字段。

因此,正如您已经写过的,您需要一个@Query来完成这个任务。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57597498

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档