我正在使用Lucene 4.6 API。这是我正在努力解决的一个场景:
我在数据库中创建了一个对象,并使用以下命令将其编入Lucene:
indexWriter.updateDocument(新术语(Indexer.FIELD_ID,id),doc,new StandardAnalyzer(Version.LUCENE_46));
其中Doc有一个文本字段。 (初始内容为:s-150129-00023 descriptionold admin addsdi admin editsdi initial unknown
)
我使用字符串decriptionold
进行搜索,效果很好
我更新了数据库中的同一个对象,并更新了依次调用的描述
indexWriter.updateDocument(new Term(Indexer.FIELD_ID,id),doc,new StandardAnalyzer(Version.LUCENE_46));
其中,Doc再次是包含内容的单个文本字段:(s-150129-00023 descriptionnew admin addsdi admin editsdi initial unknown
)
descriptionnew
的匹配项 - 但我确实也获得了descriptionold
的匹配项。我希望descriptionold
不会返回任何匹配,但确实如此。我确实在致电indexWriter.close()
后致电updateDocument()
,
我也尝试过调用forceMergeDeletes()
,waitMergeDeletes()
等,但没有区别。
关于我缺少什么的任何指示?