public abstract class AbstractParallelSearch extends Search
Modifier and Type | Class and Description |
---|---|
class |
AbstractParallelSearch.DefaultSearchResolver |
protected static class |
AbstractParallelSearch.ItemBuffer |
protected static class |
AbstractParallelSearch.ItemRequestResult |
protected class |
AbstractParallelSearch.Worker |
Search.SearchPerformanceInfo
Modifier and Type | Field and Description |
---|---|
static int |
ANNOTATION_BUFFER_SIZE |
protected int |
nextItemIndex |
protected java.lang.Object |
notifer |
protected de.ims.icarus.util.Orientation |
orientation |
protected gnu.trove.TIntCollection |
pendingIndices |
protected java.util.Queue<AbstractParallelSearch.ItemBuffer> |
pendingItems |
protected int |
pendingWorkers |
protected int |
processed |
protected SearchResult |
result |
protected int |
resultLimit |
protected SearchMode |
searchMode |
protected de.ims.icarus.util.data.DataList<?> |
source |
protected java.util.List<AbstractParallelSearch.Worker> |
workers |
beginTimestamp, endTimestamp
DEFAULT_OPTIMIZE_SEARCH, DEFAULT_SEARCH_CASESENSITIVE, DEFAULT_SEARCH_MAX_LENGTH, DEFAULT_SEARCH_MIN_LENGTH, DEFAULT_SEARCH_MODE, DEFAULT_SEARCH_NON_PROJECTIVE, DEFAULT_SEARCH_ORIENTATION, DEFAULT_SEARCH_RESULT_LIMIT, OPTIMIZE_SEARCH, SEARCH_CASESENSITIVE, SEARCH_MAX_LENGTH, SEARCH_MIN_LENGTH, SEARCH_MODE, SEARCH_NON_PROJECTIVE, SEARCH_ORIENTATION, SEARCH_RESULT_LIMIT
Constructor and Description |
---|
AbstractParallelSearch(SearchFactory factory,
SearchQuery query,
de.ims.icarus.util.Options parameters,
java.lang.Object target) |
Modifier and Type | Method and Description |
---|---|
protected void |
awaitItem() |
protected abstract ResultAnnotator |
createAnnotator() |
protected SearchResult |
createResult() |
protected SearchResult |
createResult(java.util.List<SearchConstraint> groupConstraints) |
protected abstract de.ims.icarus.util.data.DataList<?> |
createSource(java.lang.Object target) |
protected abstract AbstractParallelSearch.Worker |
createWorker(int id) |
protected void |
finalizeResult(boolean broken) |
protected int |
getMaxWorkerCount() |
Search.SearchPerformanceInfo |
getPerformanceInfo() |
SearchResult |
getResult()
Returns the result of this search operation.
|
SearchGraph |
getSearchGraph() |
SearchResolver |
getSearchResolver() |
protected java.lang.Object |
getTargetItem(int index)
Tries to fetch an item from the target list.
|
protected boolean |
hasUnprocessedItems() |
boolean |
init() |
protected abstract void |
initEngine() |
protected void |
innerCancel()
Callback for subclasses to perform proper cleanup of their
resources
|
boolean |
innerExecute()
Performs the implementation specific scheduling of
the search operation.
|
protected void |
itemProcessed(AbstractParallelSearch.ItemBuffer buffer) |
protected AbstractParallelSearch.ItemRequestResult |
nextItem(AbstractParallelSearch.ItemBuffer buffer) |
protected void |
offerItem(int index,
java.lang.Object data) |
protected abstract boolean |
validateGraph() |
protected void |
workerFinished(AbstractParallelSearch.Worker worker) |
cancel, execute, finish, getFactory, getParameter, getParameters, getProgress, getProperty, getQuery, getState, getTarget, isCancelled, isDone, isRunning, isSerializable, setProgress, setProperty, setState
addPropertyChangeListener, addPropertyChangeListener, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, removePropertyChangeListener, removePropertyChangeListener
public static final int ANNOTATION_BUFFER_SIZE
protected SearchResult result
protected de.ims.icarus.util.data.DataList<?> source
protected int processed
protected int pendingWorkers
protected java.util.List<AbstractParallelSearch.Worker> workers
protected gnu.trove.TIntCollection pendingIndices
protected java.util.Queue<AbstractParallelSearch.ItemBuffer> pendingItems
protected final java.lang.Object notifer
protected int nextItemIndex
protected final int resultLimit
protected final SearchMode searchMode
protected final de.ims.icarus.util.Orientation orientation
public AbstractParallelSearch(SearchFactory factory, SearchQuery query, de.ims.icarus.util.Options parameters, java.lang.Object target)
protected void innerCancel()
Search
innerCancel
in class Search
public SearchGraph getSearchGraph()
protected AbstractParallelSearch.ItemRequestResult nextItem(AbstractParallelSearch.ItemBuffer buffer)
protected boolean hasUnprocessedItems()
protected void awaitItem() throws java.lang.InterruptedException
java.lang.InterruptedException
protected void itemProcessed(AbstractParallelSearch.ItemBuffer buffer)
protected java.lang.Object getTargetItem(int index)
null
) the index will be stored as pending.protected void offerItem(int index, java.lang.Object data)
protected void finalizeResult(boolean broken)
protected abstract boolean validateGraph()
protected abstract void initEngine()
protected abstract de.ims.icarus.util.data.DataList<?> createSource(java.lang.Object target)
protected SearchResult createResult()
protected SearchResult createResult(java.util.List<SearchConstraint> groupConstraints)
protected abstract ResultAnnotator createAnnotator()
protected abstract AbstractParallelSearch.Worker createWorker(int id)
protected void workerFinished(AbstractParallelSearch.Worker worker)
protected int getMaxWorkerCount()
public boolean innerExecute() throws java.lang.Exception
Search
false
to signal an early exit. The search
will then set its state to .innerExecute
in class Search
true
if and only if the search operation
was successfully scheduled.java.lang.Exception
Search.execute()
public Search.SearchPerformanceInfo getPerformanceInfo()
getPerformanceInfo
in class Search
Search.getPerformanceInfo()
public SearchResult getResult()
Search
null
until the search has finished or an empty result.getResult
in class Search
Search.getResult()
public SearchResolver getSearchResolver()
getSearchResolver
in class Search
Search.getSearchResolver()