当前位置: 首页 > 知识库问答 >
问题:

为什么我不能在Lucene4.0的搜索结果中得到IndexWriter最近添加的文档?

尤夕
2023-03-14
IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_CURRENT, analyzer);
IndexWriter iwriter = new IndexWriter(directory, config);
Document doc1 = new Document();
doc1.add(new Field("name", "张三", Field.Store.YES, Field.Index.ANALYZED));
doc1.add(new IntField("year", 2013, Field.Store.YES));
doc1.add(new TextField("content", "123456789", Field.Store.YES));
iwriter.addDocument(doc1);
iwriter.commit();
iwriter.close();
DirectoryReader ireader = DirectoryReader.open(directory);
System.out.println(ireader.numDeletedDocs());
IndexSearcher isearcher = new IndexSearcher(ireader);
// Parse a simple query that searches for "text":
QueryParser parser = new QueryParser(Version.LUCENE_CURRENT, "name", analyzer);
Query query = parser.parse("张");

ScoreDoc[] hits = isearcher.search(query, null, 1000).scoreDocs;
System.out.println(hits.length);

共有1个答案

赵才俊
2023-03-14

添加文档后是否重新打开了索引?Lucene searches只返回在打开索引进行搜索时存在的文档。

[编辑...]

使用indexReader.open()或indexReader.doOpenifChanged()再次打开索引。doOpenIfChanged()的优点是,如果您仍然可以使用旧的IndexReader实例(因为索引没有更改),它将返回null。

 类似资料:
  • 问题内容: 我正在使用Select2 3.5.1。使用此插件,我可以成功加载远程数据。但是,我今天在这里问一个问题,以改善这一搜索条件。这是逐步了解我想做的事情: 通过远程数据加载(使用ajax)设置Select2。 单击Select2输入并搜索。 将出现加载,几秒钟后,您将看到结果列表。 单击列出的结果之一-结果框将消失。 如果再次单击搜索框,则列表将为空,您将需要再次输入一些新文本以得到结果列

  • 问题内容: 我曾尝试在其文档的Mozilla JSON字符串化页面上以及在SO和Google上查看,但没有找到解释。我已经使用JSOn字符串化很多次了,但是从未遇到过这个结果 我有一个JSON对象数组 附加到我的并且为了将它们作为一个参数使用了JSON.stringify()方法,我得到了以下信息: 我只是想知道$$ hashkey到底是什么,因为我期望从stringify方法获得与以下类似的东西

  • 问题内容: 我对git和詹金斯都很陌生。 我将密钥添加到bitbucket和本地计算机中时: 我可以克隆。 但是,当我将相同的url()添加到Jenkins存储库url时,出现以下错误: 问题答案: 您还需要为Jenkins用户设置ssh密钥。 通常的想法是,您登录到Jenkins框,并成为“ jenkins”用户。您可以为您的Jenkins用户打电话,所以请确保使用正确的名称。一旦成为Jenki

  • 我试图将24个添加到我的的,但当我运行它时,我发现没有添加任何按钮。(至少,它们不可见!)。我试着给一个背景色,它是可见的。有人知道我做错了什么吗? 这是我的代码(还有一个类): 其他(主要)类别:

  • 这是BST Add中二进制搜索树中add的实现 我的问题是,即使二元搜索树是不平衡的,同样的策略是否也能用于分析add的运行时?你要做多少次切割。运行时不是仍然是O(logn),而不是O(n)吗?如果是这样的话,有人能证明为什么它会是O(n)吗?

  • 如果一个表达式包含任何整数大小或更小的内容,其结果总是整数,即使两个字节之和适合一个字节。 为什么我们在一个字节中添加最后两个字节时会发生这种情况?没有编译器错误。