Exemple #1
0
        public async Task CanGetMapReduceIndexDebugTrees()
        {
            using (var store = GetDocumentStore())
            {
                SetupData(store);

                WaitForIndexing(store);

                var searchedVakanzId = "Vakanz/89d3d971-a227-430e-97ba-613799253a37";

                var db = await GetDatabase(store.Database);

                var index = db.IndexStore.GetIndex(new TestIndexVakanz_WithFiltering().IndexName);

                WaitForUserToContinueTheTest(store);

                using (var context = JsonOperationContext.ShortTermSingleUse())
                    using (var writer = new BlittableJsonTextWriter(context, new MemoryStream()))
                        using (index.GetReduceTree(new[] { searchedVakanzId, "bewerbung/000d7605-a581-4f3e-8c73-dc2eb4e3f95c" }, out var trees))
                        {
                            // must not throw

                            writer.WriteReduceTrees(trees);
                        }
            }
        }
Exemple #2
0
        public Task Debug()
        {
            var name = GetQueryStringValueAndAssertIfSingleAndNotEmpty("name");

            var index = Database.IndexStore.GetIndex(name);

            if (index == null)
            {
                HttpContext.Response.StatusCode = (int)HttpStatusCode.NotFound;
                return(Task.CompletedTask);
            }

            var operation = GetStringQueryString("op");

            using (ContextPool.AllocateOperationContext(out JsonOperationContext context))
                using (var writer = new BlittableJsonTextWriter(context, ResponseBodyStream()))
                {
                    if (string.Equals(operation, "map-reduce-tree", StringComparison.OrdinalIgnoreCase))
                    {
                        if (index.Type.IsMapReduce() == false)
                        {
                            HttpContext.Response.StatusCode = (int)HttpStatusCode.BadRequest;

                            context.Write(writer, new DynamicJsonValue
                            {
                                ["Error"] = $"{index.Name} is not map-reduce index"
                            });

                            return(Task.CompletedTask);
                        }

                        var docIds = GetStringValuesQueryString("docId", required: false);

                        using (index.GetReduceTree(docIds.ToArray(), out IEnumerable <ReduceTree> trees))
                        {
                            writer.WriteReduceTrees(trees);
                        }

                        return(Task.CompletedTask);
                    }

                    if (string.Equals(operation, "source-doc-ids", StringComparison.OrdinalIgnoreCase))
                    {
                        using (index.GetIdentifiersOfMappedDocuments(GetStringQueryString("startsWith", required: false), GetStart(), GetPageSize(), out IEnumerable <string> ids))
                        {
                            writer.WriteArrayOfResultsAndCount(ids);
                        }

                        return(Task.CompletedTask);
                    }

                    if (string.Equals(operation, "entries-fields", StringComparison.OrdinalIgnoreCase))
                    {
                        var fields = index.GetEntriesFields();

                        writer.WriteStartObject();
                        writer.WriteArray("Results", fields);
                        writer.WriteEndObject();

                        return(Task.CompletedTask);
                    }

                    throw new NotSupportedException($"{operation} is not supported");
                }
        }