我正在使用Lucene创建一个基于概念的图像搜索引擎。首先,打开数据库并将其复制到RAM索引中。然后,我编写了一个分析器来查找用户输入单词及其同义词。最后,我想打开索引以获得结果。
getImage() -用于调用addDoc()将数据库复制到我的索引中
这是getImageResult(),我想用它来获得结果。我想也许这就是窃听器。
但是,如果我删除:
StandardAnalyzer analyzer = new StandardAnalyzer();
IndexWriterConfig config = new IndexWriterConfig(analyzer);
IndexWriter iwriter = new IndexWriter(index, config);
iwriter.commit();它将引发一个异常:在RAMDirectory中没有找到任何段*文件。如果我保留这部分,我就无法得到任何结果。
发布于 2017-03-07 00:39:29
我不完全确定,但我假设您试图用第一个片段写入索引,然后用第二个片段搜索它,对吗?
在一个全新目录中打开一个全新索引的getImageResult()方法。以前写到不同RAMDirectory的任何东西都无法在那里搜索。
你应该要么:
RAMDirectory,或者FSDirectory中打开索引,它将被保存到文件系统中,并可以重新打开。请参阅FSDirectory.openhttps://stackoverflow.com/questions/42593740
复制相似问题