|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.apache.lucene.search.LiveFieldValues<S,T>
public abstract class LiveFieldValues<S,T>
Tracks live field values across NRT reader reopens. This holds a map for all updated ids since the last reader reopen. Once the NRT reader is reopened, it prunes the map. This means you must reopen your NRT reader periodically otherwise the RAM consumption of this class will grow unbounded!
NOTE: you must ensure the same id is never updated at the same time by two threads, because in this case you cannot in general know which thread "won".
Constructor Summary | |
---|---|
LiveFieldValues(ReferenceManager<S> mgr,
T missingValue)
|
Method Summary | |
---|---|
void |
add(String id,
T value)
Call this after you've successfully added a document to the index, to record what value you just set the field to. |
void |
afterRefresh(boolean didRefresh)
Called after the attempted refresh; if the refresh did open a new reference then didRefresh will be true and ReferenceManager.acquire() is guaranteed to return the new
reference. |
void |
beforeRefresh()
Called right before a refresh attempt starts. |
void |
close()
|
void |
delete(String id)
Call this after you've successfully deleted a document from the index. |
T |
get(String id)
Returns the current value for this id, or null if the id isn't in the index or was deleted. |
protected abstract T |
lookupFromSearcher(S s,
String id)
This is called when the id/value was already flushed & opened in an NRT IndexSearcher. |
int |
size()
Returns the [approximate] number of id/value pairs buffered in RAM. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public LiveFieldValues(ReferenceManager<S> mgr, T missingValue)
Method Detail |
---|
public void close()
close
in interface Closeable
public void beforeRefresh() throws IOException
ReferenceManager.RefreshListener
beforeRefresh
in interface ReferenceManager.RefreshListener
IOException
public void afterRefresh(boolean didRefresh) throws IOException
ReferenceManager.RefreshListener
ReferenceManager.acquire()
is guaranteed to return the new
reference.
afterRefresh
in interface ReferenceManager.RefreshListener
IOException
public void add(String id, T value)
public void delete(String id)
public int size()
public T get(String id) throws IOException
IOException
protected abstract T lookupFromSearcher(S s, String id) throws IOException
IOException
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |