我们希望随机结果与分页保持一致。我们试图通过更改randomseed函数来修改solr.randomsortfieldtype,基于这个堆栈溢出问题:solr:索引版本更改后的随机排序顺序。
它通过删除“(int)top.getversion()”,修改了此函数:
private static int getSeed(String fieldName, LeafReaderContext context) {
final DirectoryReader top = (DirectoryReader) ReaderUtil.getTopLevelContext(context).reader();
// calling getVersion() on a segment will currently give you a null pointer exception, so
// we use the top-level reader.
return fieldName.hashCode() + context.docBase + [Removed (int)top.getVersion()];
}
由于这并没有产生预期的结果,我想知道是否可以通过创建一个存储字段(名为title_hash)来做一些更确定的事情,该字段是文档标题字段的散列(title_hash)。然后,我可以如下替换getseed函数:
private static int getSeed(String fieldName, LeafReaderContext context) {
final DirectoryReader top = (DirectoryReader) ReaderUtil.getTopLevelContext(context).reader();
// calling getVersion() on a segment will currently give you a null pointer exception, so
// we use the top-level reader.
return fieldName.hashCode() + getTitleHashValue();
}
是否可以从该函数中引用从字段类型继承的类中的文档字段值?如果是这样,我将如何做到这一点,因为我不熟悉solr的内部结构?
暂无答案!
目前还没有任何答案,快来回答吧!