Flann incremental: remove points before adding new ones

This commit is contained in:
matlabbe
2015-09-11 15:59:01 -04:00
parent 1836f0fe25
commit b98bc5a948

View File

@@ -583,6 +583,12 @@ void VWDictionary::update()
_strategy < kNNBruteForce &&
_visualWords.size())
{
for(std::set<int>::iterator iter=_removedIndexedWords.begin(); iter!=_removedIndexedWords.end(); ++iter)
{
UASSERT(uContains(_mapIdIndex, *iter));
_flannIndex->removePoint(_mapIdIndex.at(*iter));
}
if(_notIndexedWords.size())
{
for(std::set<int>::iterator iter=_notIndexedWords.begin(); iter!=_notIndexedWords.end(); ++iter)
@@ -625,11 +631,6 @@ void VWDictionary::update()
}
}
}
for(std::set<int>::iterator iter=_removedIndexedWords.begin(); iter!=_removedIndexedWords.end(); ++iter)
{
UASSERT(uContains(_mapIdIndex, *iter));
_flannIndex->removePoint(_mapIdIndex.at(*iter));
}
}
else if(_strategy >= kNNBruteForce &&
_notIndexedWords.size() &&