public static void WriteIndexQuery(this BlittableJsonTextWriter writer, JsonOperationContext context, IIndexQuery query)
        {
            var indexQuery = query as IndexQueryServerSide;

            if (indexQuery != null)
            {
                writer.WriteIndexQuery(context, indexQuery);
                return;
            }

            var moreLikeThisQuery = query as MoreLikeThisQueryServerSide;

            if (moreLikeThisQuery != null)
            {
                writer.WriteMoreLikeThisQuery(context, moreLikeThisQuery);
                return;
            }

            var facetQuery = query as FacetQuery;

            if (facetQuery != null)
            {
                writer.WriteFacetQuery(context, facetQuery);
                return;
            }

            throw new NotSupportedException($"Not supported query type: {query.GetType()}");
        }
Example #2
0
        public override HttpRequestMessage CreateRequest(JsonOperationContext ctx, ServerNode node, out string url)
        {
            if (string.IsNullOrWhiteSpace(_query.FacetSetupDoc) == false && _query.Facets != null && _query.Facets.Count > 0)
            {
                throw new InvalidOperationException($"You cannot specify both '{nameof(FacetQuery.FacetSetupDoc)}' and '{nameof(FacetQuery.Facets)}'.");
            }

            var path = new StringBuilder(node.Url)
                       .Append("/databases/")
                       .Append(node.Database)
                       .Append("/queries?op=facets&query-hash=")
                       .Append(_query.GetQueryHash(ctx));

            var request = new HttpRequestMessage
            {
                Method  = HttpMethod.Post,
                Content = new BlittableJsonContent(stream =>
                {
                    using (var writer = new BlittableJsonTextWriter(ctx, stream))
                    {
                        writer.WriteFacetQuery(_conventions, ctx, _query);
                    }
                })
            };

            url = path.ToString();
            return(request);
        }
Example #3
0
 public void WriteContent(BlittableJsonTextWriter writer, JsonOperationContext context)
 {
     writer.WriteFacetQuery(_conventions, context, _query);
 }