【发布时间】:2016-04-04 08:02:25
【问题描述】:
您好,我有以下查询,但 spring data solr 正在为最后一个参数输入参数 1 值而不是参数 10 值:“AND days_ss:(?10)”... 我猜它看到的是 ?1 而不是? 10
无论如何,我尝试使用 :days 就像使用 JPA 一样,但这会干扰 lucene 语法
@Highlight(prefix = "<b>", postfix = "</b>")
@Query("""text:(?0) AND moduleLevel_s:(?1) AND programOfStudy_s:\"?2\" AND yearOfEntry_i:?3 AND yearOfStudy_i:?4 AND unitValue_d:?5 AND
department_s:(?6) AND teachers_ss:(?7) AND cappedAccess_b:?8 AND terms_ss:(?9) AND days_ss:(?10)""")
HighlightPage<CourseGuide> advancedSearch(@Param(value = "query") List<String> query,
@Param(value = "moduleLevel") List<ModuleLevel> moduleLevel,
@Param(value = "programOfStudy") String programOfStudy,
@Param(value = "yearOfEntry") def yearOfEntry,
@Param(value = "yearOfStudy") def yearOfStudy,
@Param(value = "unitValue") def unitValue,
@Param(value = "department") List<String> department,
@Param(value = "teachers") List<String> teachers,
@Param(value = "cappedAccess") def cappedAccess,
@Param(value = "terms") List<String> terms,
@Param(value = "days") List<String> days,Pageable pageable)
实际上发生的事情是,在它的参数替换过程中,它在字符串中寻找所有出现的 '?1' 并错误地弄乱了我的 ?10 占位符。如果它在另一个方向上工作,事情可能会没问题,即先处理 ?10 然后处理 ?9,然后处理 ?8 等等
【问题讨论】:
标签: lucene spring-data spring-data-solr