public virtual FieldIndexProcessorResult Run() { IIndexedNode bestIndex = SelectBestIndex(); if (null == bestIndex) { return(FieldIndexProcessorResult.NoIndexFound); } IIndexedNode resolved = ResolveFully(bestIndex); if (!bestIndex.IsEmpty()) { bestIndex.MarkAsBestIndex(_candidates); return(new FieldIndexProcessorResult(resolved)); } return(FieldIndexProcessorResult.FoundIndexButNoMatch); }