Information retrieval 不能';t加载称为元索引的索引结构

Information retrieval 不能';t加载称为元索引的索引结构,information-retrieval,inverted-index,Information Retrieval,Inverted Index,当我使用Terrier3.5为集合建立反向索引时。 首先,我使用“/bin/trec_setup.sh var/corpus” 第二,我使用“/bin/trec_terrier.sh-I-j”,但出现了无法加载称为元索引的索引结构的错误 Setting TERRIER_HOME to /home/mao/Desktop/terrier-3.5 INFO - TRECCollection read collection specification (1 files) INFO - Processi

当我使用Terrier3.5为集合建立反向索引时。 首先,我使用“/bin/trec_setup.sh var/corpus” 第二,我使用“/bin/trec_terrier.sh-I-j”,但出现了无法加载称为元索引的索引结构的错误

Setting TERRIER_HOME to /home/mao/Desktop/terrier-3.5
INFO - TRECCollection read collection specification (1 files)
INFO - Processing var/collection/sogou/sogou
INFO - Structure meta reading lookup file into memory
INFO - Structure meta reading reverse map for key docno directly from disk
ERROR - Couldn't load an index structure called meta
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.terrier.structures.Index.loadIndexStructure(Index.java:421)
    at org.terrier.structures.Index.getIndexStructure(Index.java:330)
    at org.terrier.structures.Index.loadIndices(Index.java:252)
    at org.terrier.structures.Index.<init>(Index.java:189)
    at org.terrier.structures.Index.createIndex(Index.java:659)
    at org.terrier.applications.TRECIndexing.createSinglePass(TRECIndexing.java:204)
    at org.terrier.applications.TrecTerrier.run(TrecTerrier.java:382)
    at org.terrier.applications.TrecTerrier.applyOptions(TrecTerrier.java:564)
    at org.terrier.applications.TrecTerrier.main(TrecTerrier.java:235)
Caused by: java.io.FileNotFoundException: /home/mao/Desktop/terrier-3.5/var/index/data.meta-0.fsomapfile (No such file or directory)
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:241)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:122)
    at org.terrier.utility.io.LocalFileSystem$LocalRandomAccessFile.<init>(LocalFileSystem.java:54)
    at org.terrier.utility.io.LocalFileSystem.openFileRandom(LocalFileSystem.java:116)
    at org.terrier.utility.Files.openFileRandom(Files.java:354)
    at org.terrier.structures.collections.FSOrderedMapFile.<init>(FSOrderedMapFile.java:571)
    at org.terrier.structures.CompressingMetaIndex.loadIndex(CompressingMetaIndex.java:1194)
    at org.terrier.structures.CompressingMetaIndex.<init>(CompressingMetaIndex.java:835)
    ... 13 more
A problem occurred: java.lang.NullPointerException
java.lang.NullPointerException
    at org.terrier.applications.TRECIndexing.createSinglePass(TRECIndexing.java:205)
    at org.terrier.applications.TrecTerrier.run(TrecTerrier.java:382)
    at org.terrier.applications.TrecTerrier.applyOptions(TrecTerrier.java:564)
    at org.terrier.applications.TrecTerrier.main(TrecTerrier.java:235)
mao@ubuntu:~/Desktop/terrier-3.5$ ./bin/trec_terrier.sh --printmeta
Setting TERRIER_HOME to /home/mao/Desktop/terrier-3.5
ERROR - Couldn't load an index structure called meta-inputstream
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
    at org.terrier.structures.Index.loadIndexStructure(Index.java:421)
    at org.terrier.structures.Index.getIndexStructureInputStream(Index.java:449)
    at org.terrier.structures.IndexUtil.printMetaIndex(IndexUtil.java:328)
    at org.terrier.applications.TrecTerrier.run(TrecTerrier.java:412)
    at org.terrier.applications.TrecTerrier.applyOptions(TrecTerrier.java:564)
    at org.terrier.applications.TrecTerrier.main(TrecTerrier.java:235)
Caused by: java.io.EOFException
    at java.io.DataInputStream.readFully(DataInputStream.java:197)
    at java.io.DataInputStream.readLong(DataInputStream.java:416)
    at org.terrier.structures.CompressingMetaIndex$InputStream.<init>(CompressingMetaIndex.java:702)
    at org.terrier.structures.CompressingMetaIndex$InputStream.<init>(CompressingMetaIndex.java:730)
    ... 10 more
A problem occurred: java.lang.NullPointerException
java.lang.NullPointerException
    at org.terrier.structures.IndexUtil.printMetaIndex(IndexUtil.java:329)
    at org.terrier.applications.TrecTerrier.run(TrecTerrier.java:412)
    at org.terrier.applications.TrecTerrier.applyOptions(TrecTerrier.java:564)
    at org.terrier.applications.TrecTerrier.main(TrecTerrier.java:235)
将TERRIER\u HOME设置为/HOME/mao/Desktop/TERRIER-3.5
信息-TRECCollection读取集合规范(1个文件)
信息处理变量/集合/搜狗/搜狗
信息结构将查找文件读入内存
直接从磁盘读取密钥docno的信息结构元读取反向映射
错误-无法加载名为meta的索引结构
java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于org.terrier.structures.Index.loadIndexStructure(Index.java:421)
位于org.terrier.structures.Index.getIndexStructure(Index.java:330)
在org.terrier.structures.Index.LoadIndexes(Index.java:252)上
位于org.terrier.structures.Index.(Index.java:189)
位于org.terrier.structures.Index.createIndex(Index.java:659)
位于org.terrier.applications.TRECIndexing.createSinglePass(TRECIndexing.java:204)
位于org.terrier.applications.trecterier.run(trecterier.java:382)
位于org.terrier.applications.treacterrier.applyOptions(treacterrier.java:564)
位于org.terrier.applications.trecterier.main(trecterier.java:235)
原因:java.io.FileNotFoundException:/home/mao/Desktop/terrier-3.5/var/index/data.meta-0.fsomapfile(无此类文件或目录)
位于java.io.RandomAccessFile.open(本机方法)
位于java.io.RandomAccessFile。(RandomAccessFile.java:241)
位于java.io.RandomAccessFile。(RandomAccessFile.java:122)
位于org.terrier.utility.io.LocalFileSystem$LocalRandomAccessFile.(LocalFileSystem.java:54)
位于org.terrier.utility.io.LocalFileSystem.openFileRandom(LocalFileSystem.java:116)
位于org.terrier.utility.Files.openFileRandom(Files.java:354)
位于org.terrier.structures.collections.FSOrderedMapFile。(FSOrderedMapFile.java:571)
位于org.terrier.structures.CompressingMetaIndex.loadIndex(CompressingMetaIndex.java:1194)
位于org.terrier.structures.CompressingMetaIndex。(CompressingMetaIndex.java:835)
... 还有13个
出现问题:java.lang.NullPointerException
java.lang.NullPointerException
位于org.terrier.applications.TRECIndexing.createSinglePass(TRECIndexing.java:205)
位于org.terrier.applications.trecterier.run(trecterier.java:382)
位于org.terrier.applications.treacterrier.applyOptions(treacterrier.java:564)
位于org.terrier.applications.trecterier.main(trecterier.java:235)
mao@ubuntu:~/Desktop/terrier-3.5$。/bin/trec_terrier.sh--printmeta
将TERRIER_HOME设置为/HOME/mao/Desktop/TERRIER-3.5
错误-无法加载名为meta inputstream的索引结构
java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:526)
位于org.terrier.structures.Index.loadIndexStructure(Index.java:421)
位于org.terrier.structures.Index.getIndexStructureInputStream(Index.java:449)
位于org.terrier.structures.IndexUtil.printMetaIndex(IndexUtil.java:328)
位于org.terrier.applications.trecterier.run(trecterier.java:412)
位于org.terrier.applications.treacterrier.applyOptions(treacterrier.java:564)
位于org.terrier.applications.trecterier.main(trecterier.java:235)
原因:java.io.EOFException
在java.io.DataInputStream.readFully(DataInputStream.java:197)
位于java.io.DataInputStream.readLong(DataInputStream.java:416)
位于org.terrier.structures.CompressingMetaIndex$InputStream。(CompressingMetaIndex.java:702)
位于org.terrier.structures.CompressingMetaIndex$InputStream。(CompressingMetaIndex.java:730)
... 10多
出现问题:java.lang.NullPointerException
java.lang.NullPointerException
位于org.terrier.structures.IndexUtil.printMetaIndex(IndexUtil.java:329)
位于org.terrier.applications.trecterier.run(trecterier.java:412)
位于org.terrier.applications.treacterrier.applyOptions(treacterrier.java:564)
位于org.terrier.applications.trecterier.main(trecterier.java:235)

当我遇到这种情况时,出现错误的原因是terrier文件夹中有一个损坏的索引,这是因为我没有先运行安装程序就运行了索引而创建的

从Terrier主目录的var/index子文件夹中删除所有文件。

那么它就可以正常工作了