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);
        }