是否可以使用Solr查询和reRank查询?

是否可以使用Solr查询和reRank查询?,solr,spring-data,Solr,Spring Data,我设法使用reRankQuery并根据数字字段对结果进行排序。但是,我不能对字符串字段执行相同的操作。有没有一种方法可以通过重新运行查询来实现这一点 我使用的是Solr v8.2您是否有查询示例以及错误/问题是什么?据我所知,重新排序查询中没有固有的限制,应该限制这一点。例如:{!rerank reRankQuery=$rqq reRankDocs=100 reRankWeight=3}”);其中rqq=(val:number);将用于数字字段。但是,如果我将rqq=(排序名称asc)无法按预期

我设法使用reRankQuery并根据数字字段对结果进行排序。但是,我不能对字符串字段执行相同的操作。有没有一种方法可以通过重新运行查询来实现这一点


我使用的是Solr v8.2

您是否有查询示例以及错误/问题是什么?据我所知,重新排序查询中没有固有的限制,应该限制这一点。例如:{!rerank reRankQuery=$rqq reRankDocs=100 reRankWeight=3}”);其中rqq=(val:number);将用于数字字段。但是,如果我将rqq=(排序名称asc)无法按预期工作。它不会根据名称字段调用结果。但这不是一个有效的查询。重新排名查询需要是一个有效的solr查询。该查询的分数将添加到常规查询中。如果只需要排序,可能根本不需要使用重新排名查询,因为这对于inde来说已经是一个非常有效的过程xed字段。重新排序查询解析器的目标是限制昂贵函数的使用,因为查询中的其他限制,在数百万文档上调用昂贵函数可能是不必要的。对于按索引值进行常规排序,使用常规的
排序应该足够了。举个例子说明包括示例文档,这些文档显示了使用上述复合排序顺序的错误,但如果您认为有必要,让我们尝试使用rerank来代替它。使用带有
ord
(它为您提供排序集中字段的序号)的函数查询怎么样
或可能的
\u val\uuuuord(field)
?由于重新统计查询被添加到现有分数中(这不是按定义排序),您可能还必须添加一个较大的权重(通过
产品()
^
)。查看为您的条目计算的分数(追加
调试=所有
)并进行相应的调整。使用重列功能的限制是它只会增加分数。您可以使用其他数学函数(如sub to subtract,iirc)来代替较大的值并使用ord(或rord)要从较大的分数值中减去的值。您是否有您的查询示例以及错误/问题是什么?据我所知,重新排序查询中没有固有的限制,应该限制这一点。例如,类似以下内容:{!rerank reRankQuery=$rqq reRankDocs=100 reRankWeight=3});其中rqq=(val:number);将用于数字字段。但是,如果我将rqq=(排序名称asc)无法按预期工作。它不会根据名称字段调用结果。但这不是一个有效的查询。重新排名查询需要是一个有效的solr查询。该查询的分数将添加到常规查询中。如果只需要排序,可能根本不需要使用重新排名查询,因为这对于inde来说已经是一个非常有效的过程xed字段。重新排序查询解析器的目标是限制昂贵函数的使用,因为查询中的其他限制,在数百万文档上调用昂贵函数可能是不必要的。对于按索引值进行常规排序,使用常规的
排序应该足够了。举个例子说明包括示例文档,这些文档显示了使用上述复合排序顺序的错误,但如果您认为有必要,让我们尝试使用rerank来代替它。使用带有
ord
(它为您提供排序集中字段的序号)的函数查询怎么样
或可能的
\u val\uuuuord(field)
?由于重新统计查询被添加到现有分数中(这不是按定义排序),您可能还必须添加一个较大的权重(通过
产品()
^
)。查看为您的条目计算的分数(追加
调试=所有
)并进行相应的调整。使用重列功能的限制是它只会增加分数。您可以使用其他数学函数(如sub to subtract,iirc)来代替较大的值,并使用ord(或rord)值从较大的分数值中减去。