Sorting Solr:索引版本更改后的随机排序顺序

Sorting Solr:索引版本更改后的随机排序顺序,sorting,random,solr,Sorting,Random,Solr,我正在使用“solr.RandomSortField”根据传递的随机种子对搜索结果进行随机排序。它工作正常,为同一个随机种子密钥提供相同的顺序 问题是: 通过在运行时使用API创建/删除文档来更改索引版本时。然后,新版本和旧版本之间相同密钥的随机顺序也会发生变化 通过在谷歌搜索,我了解到“RandomSortField”使用索引版本,所以当索引版本更改时,排序顺序也会更改 是否有任何方法可以从随机排序中排除索引版本,或者将索引版本传递给我的查询,以便在旧版本而不是新的更新版本中搜索,并在分页搜索

我正在使用“
solr.RandomSortField
”根据传递的随机种子对搜索结果进行随机排序。它工作正常,为同一个随机种子密钥提供相同的顺序

问题是:

通过在运行时使用API创建/删除文档来更改索引版本时。然后,新版本和旧版本之间相同密钥的随机顺序也会发生变化

通过在谷歌搜索,我了解到“RandomSortField”使用索引版本,所以当索引版本更改时,排序顺序也会更改

是否有任何方法可以从随机排序中排除索引版本,或者将索引版本传递给我的查询,以便在旧版本而不是新的更新版本中搜索,并在分页搜索结果时获得相同的顺序


大多数情况下,只要订单发生变化,分页就会出现问题。在某些页面之后获得重复结果

您是否尝试删除
(int)top.getVersion()

使用RandomSortField可以在以下位置找到一个模块/插件:

能够有可以持久化分页的随机结果是很有用的。但是如果您有一个经常更新的索引,那么由于对索引版本的依赖性,您将丢失随机排序顺序。要解决这个问题,您可以删除我上面写的那行,或者您甚至可以简单地:

返回fieldName.hashCode()

在getseed函数中


您需要将其制作成您自己的自定义插件,如jarfile或任何您想要的插件,并将其加载到相同的名称空间中。

我不太理解您的要求。您使用solr.RandomSortField获取所依赖的排序顺序?这并不是它的意图…嗨,Uwe,我正在使用“solr.RandomSortField”以随机顺序显示solr搜索结果。我希望这个随机顺序在任何用户的单个搜索期间保持不变,直到他完成所有结果分页。在第二个术语搜索中可能会发生变化。结果页导航时,它不应更改。但索引是由实时数据更新的,所以随机顺序在分页过程中会发生变化。从何处删除它?请解释一下。我没有solr来源。。我需要它吗?@PiyushAghera你可以在这里找到它:你可以制作自己的自定义模块,通过删除我在帖子中写的内容,消除对索引版本的依赖。加载那个自定义模块而不是链接的^^@user3610279,我还想知道如何加载自定义模块。