通过Criteria API添加原始查询参数

时间:2016-02-26 15:08:16

标签: solr spring-data-solr

我找不到答案。我发现之前的类似问题没有得到答复。我想使用Spring数据solr进行查询。但@Query不足以满足我的需求。据我所知,无论你在这里给出什么,都会成为一个{select}处理器的q参数。

在我的情况下,我需要为空间搜索添加更多参数,例如sfield。如果@Query不会削减它,我准备通过自动装配SolrTemplate来编写自定义存储库实现,但是Criteria API似乎也不允许我添加原始查询参数。

非常感谢任何帮助/积分。

1 个答案:

答案 0 :(得分:0)

我通过创建一个QueryParser装饰器来解决这个问题,该装饰器将所需的参数添加到解析的solr查询中。 QueryParser已使用solrTemplate.registerQueryParser()注册。

但请注意,由于发送到solrTemplate.queryForPage的所有查询都被QueryBase中的静态包保护内部类包装,因此我必须做一个非常讨厌的黑客才能使其正常工作。所以我上面的注册码必须在一个包org.springframework.data.solr.core