public override IIndexDiagnostics Create(IIndex index)
    {
        if (!(index is IIndexDiagnostics indexDiag))
        {
            if (index is LuceneIndex luceneIndex)
            {
                indexDiag = new LuceneIndexDiagnostics(
                    luceneIndex,
                    _loggerFactory.CreateLogger <LuceneIndexDiagnostics>(),
                    _hostingEnvironment,
                    null);
            }
            else
            {
                indexDiag = base.Create(index);
            }
        }

        return(indexDiag);
    }
示例#2
0
        private ExamineIndexModel CreateModel(IIndex index)
        {
            var indexName = index.Name;

            if (!(index is IIndexDiagnostics indexDiag))
            {
                if (index is LuceneIndex luceneIndex)
                {
                    indexDiag = new LuceneIndexDiagnostics(luceneIndex, Logger);
                }
                else
                {
                    indexDiag = new GenericIndexDiagnostics(index);
                }
            }

            var isHealth   = indexDiag.IsHealthy();
            var properties = new Dictionary <string, object>
            {
                [nameof(IIndexDiagnostics.DocumentCount)] = indexDiag.DocumentCount,
                [nameof(IIndexDiagnostics.FieldCount)]    = indexDiag.FieldCount,
            };

            foreach (var p in indexDiag.Metadata)
            {
                properties[p.Key] = p.Value;
            }

            var indexerModel = new ExamineIndexModel
            {
                Name               = indexName,
                HealthStatus       = isHealth.Success ? (isHealth.Result ?? "Healthy") : (isHealth.Result ?? "Unhealthy"),
                ProviderProperties = properties,
                CanRebuild         = _indexRebuilder.CanRebuild(index)
            };


            return(indexerModel);
        }