solr确定随机

hfsqlsce  于 2021-10-10  发布在  Java
关注(0)|答案(0)|浏览(202)

我们希望随机结果与分页保持一致。我们试图通过更改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的内部结构?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题