Spring数据Solr短语搜索和排序

Spring数据Solr短语搜索和排序,solr,spring-data,spring-data-solr,Solr,Spring Data,Spring Data Solr,我正在寻找有关SpringDataSolr短语搜索和排序的帮助 当我搜索“Spring数据”时,它应该返回包含“Spring数据”的数据 此外,结果应根据匹配字段的数量按排序顺序排列 当我从用户那里获得搜索输入时,我会按如下方式进行搜索 public interface SolrSecurityRepository extends SolrCrudRepository<SolrSecurity, String> { @Query(value = "subje

我正在寻找有关SpringDataSolr短语搜索和排序的帮助

当我搜索“Spring数据”时,它应该返回包含“Spring数据”的数据

此外,结果应根据匹配字段的数量按排序顺序排列

当我从用户那里获得搜索输入时,我会按如下方式进行搜索

public interface SolrSecurityRepository extends
        SolrCrudRepository<SolrSecurity, String> {

    @Query(value = "subject:*?0* OR content:*?0*")
    List<SolrSecurity> find(String searchStr,
                Pageable pagebale);

}
公共接口SolrSecurityRepository扩展
SolrCrude存储库{
@查询(value=“主题:*?0*或内容:*?0*”)
列表查找(字符串搜索),
可寻呼的寻呼(pagebale);
}
不确定如何实现精确的短语匹配

另外,是否还有其他方法使调试能够看到SpringDataSolr生成的查询

谢谢,
S

Spring数据解决方案依赖于。默认情况下,不会执行任何操作来强制排序,这意味着文档是按分数排序的。精确的短语搜索意味着您必须引用术语字符串。您可以通过向实体添加readonly score属性来查看分配的分数,并更改带注释的查询以读取给定的字段列表

class文件{
@Id字符串Id;
@索引(只读=真)浮动分数;
// ...
}
@查询(value=“subject:*?0*或content:*?0*”,字段={“*”,“score”})
列表查找(字符串searchStr、可分页pagebale);
或者在文档中使用
@Score
(目前仅适用于1.4.RC1)

如果要在执行前打印查询,请通过将
添加到logback.xml来启用
SolrTemplate
的日志记录

public interface SolrSecurityRepository extends
        SolrCrudRepository<SolrSecurity, String> {

    @Query(value = "subject:*?0* OR content:*?0*")
    List<SolrSecurity> find(String searchStr,
                Pageable pagebale);

}