我在ES上运行查询,但参数的数量正在增加(由于业务原因)。
根据Spring数据弹性搜索中的文档,您可以使用@Query
和有序参数,如?0
,?1
等,用于方法签名中给出的参数,但这种方法似乎有点不舒服
是否可以进行类似于:#{#myParam.myPropOfMyParam}
的查询,换句话说,使用SpEL访问参数属性?
而不是以一系列参数的方法结束,比如
@Query("match.... ?0,.. ?1, ?2")
Page<Doc> findBy(String arg1, String arg2, String arg3, Pageable pageable)
更像jpa使用的spring数据
public interface CompanyDocRepo extends ElasticsearchRepository<CompanyDoc, UUID> {
@Query(value =
"{\n" +
" \"multi_match\": {\n" +
" \"query\": \"#{#keyword['somevalue']}\",\n" +
" \"fields\": [\n" +
" \"name\",\n" +
" \"description\",\n" +
" \"city\",\n" +
" \"department\",\n" +
" \"sectors.sector.descriptionSector\",\n" +
" \"sectors.sector.description\",\n" +
" \"sectors.sector.name\",\n" +
" \"interests.name\"\n" +
" ]\n" +
" }\n" +
"}\n")
Page<CompanyDoc> findByKeyword(@Param("keyword") Map<String,String> keyword, Pageable pageable);
}
或者是否有其他方法可以在不离开spring数据接口的情况下进行查询?
目前这是不可能的。您可能希望在上为此创建一个问题https://github.com/spring-projects/spring-data-elasticsearch/issues
目前,下面的查询只返回10个搜索点击。我想把它增加到100。怎么做??
我正在使用mssql和spring数据JPA,我想通过使用自定义查询注释将新记录插入到表中。 它的给定错误, 原因:组织。冬眠hql。内部的ast。QuerySyntaxException:应为打开,在第1行第23列[插入到客户值(?1,?2)]附近找到“值” 我也试过下面,同样的错误。
问题内容: 嗨,我正在使用elasticsearchSpring数据。我项目的领域结构不断变化,因此我必须删除索引才能每次更改映射。为了克服这个问题,我使用了别名。我使用以下方法创建了别名: 我有一个测试课: TestRepository类: 我的问题是如何从别名而不是索引本身读取?是否对别名也进行写操作。我看过以下链接:https : //www.elastic.co/guide/en/elas
问题内容: 我在Titan上使用Elastic Search。如何用泰坦在ES中进行分页? 我看到了这个,所以尝试了这个: 事情是它返回所有4-5个记录,而不是2的大小 问题答案: 参数尚不支持。该方法仅存在于将来的实现中。但是,您目前可以限制结果。下面的代码应该工作: …但是您不能指定偏移量。 干杯,丹尼尔
我正在配置elasticsearch spring应用程序,并遵循我创建的RestHighLevelClient文档: 现在我希望我所有的文档都有snake_case的命名策略,在文档上这是我发现的: 在没有进一步配置的情况下,Spring Data Elasticsearch将使用对象的属性名称作为Elasticsearch中的字段名称。这可以通过使用该属性上的@Field注释来更改单个字段。
我正在用spring数据创建一个带有空日期检查的spel动态查询。我的疑问是: 当我使用有效日期运行此查询时,它可以工作,但当我传递空日期时,我会得到以下错误: 堆栈跟踪: