Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 让孩子们与Lucene';分类学领头人_Java_Lucene - Fatal编程技术网

Java 让孩子们与Lucene';分类学领头人

Java 让孩子们与Lucene';分类学领头人,java,lucene,Java,Lucene,在Lucene中,我使用TaxonomyReader读取存储在磁盘中的分类索引。对于给定的类别,我需要找到它的子类别。但是,在中,我可以找到一个方法来检索父对象,但不能检索子对象。有一个名为getChildrenArray()的方法返回一个对象。如您所见,此类只有两个方法: getYoungestChildArray getOlderSiblingArray 我想使用这两种方法实现Enumerator。有人知道怎么做吗?我得到了以下信息: private class EnumChildren

Lucene
中,我使用
TaxonomyReader
读取存储在磁盘中的分类索引。对于给定的类别,我需要找到它的子类别。但是,在中,我可以找到一个方法来检索父对象,但不能检索子对象。有一个名为
getChildrenArray()
的方法返回一个对象。如您所见,此类只有两个方法:

  • getYoungestChildArray
  • getOlderSiblingArray
我想使用这两种方法实现
Enumerator
。有人知道怎么做吗?

我得到了以下信息:

private class EnumChildren implements Enumeration<Integer> {
    int category, current;
    int[] next, first;

    public EnumChildren(int category) {
        ChildrenArrays childrenArrays = tr.getChildrenArrays();
        first = childrenArrays.getYoungestChildArray(); 
        next = childrenArrays.getOlderSiblingArray();
        current = first[category];
    }

    public boolean hasChildren() {
        return (current != TaxonomyReader.INVALID_ORDINAL);
    }

    @Override
    public boolean hasMoreElements() {  
        current = next[current];
        return (current != TaxonomyReader.INVALID_ORDINAL);
    }

    @Override
    public Integer nextElement() {
        return current;
    }
}
ordinal = tr.getOrdinal(new CategoryPath(nodeCategory.getPath(), '/')); 
        EnumChildren childrenEnumeration = new EnumChildren(ordinal);
        if (childrenEnumeration.hasChildren()) {
            do {
                int current = childrenEnumeration.nextElement();
                Category child = new Category(tr.getPath(current).toString());
                addChildren(child);
                nodeCategory.children.add(child);
            } while (childrenEnumeration.hasMoreElements());
        }