コード例 #1
0
ファイル: ElasticSerializer.cs プロジェクト: cicorias/NEST
        public MultiSearchResponse DeserializeMultiSearchResponse(ConnectionStatus c, MultiSearchDescriptor d)
        {
            var multiSearchConverter = new MultiSearchConverter(this._settings, d);
            var multiSearchResponse  = this.DeserializeInternal <MultiSearchResponse>(c, piggyBackJsonConverter: multiSearchConverter);

            return(multiSearchResponse);
        }
コード例 #2
0
        public MultiSearchResponse MultiSearch(MultiSearchDescriptor multiSearchDescriptor)
        {
            multiSearchDescriptor.ThrowIfNull("multiSearchDescriptor");
            var sb = new StringBuilder();

            foreach (var operation in multiSearchDescriptor._Operations.Values)
            {
                var indeces = operation._Indices.HasAny() ? string.Join(",", operation._Indices) : null;
                if (operation._AllIndices)
                {
                    indeces = "_all";
                }

                var index = indeces ??
                            multiSearchDescriptor._FixedIndex ??
                            new IndexNameResolver(this.Settings).GetIndexForType(operation._ClrType);

                var types = operation._Types.HasAny() ? string.Join(",", operation._Types) : null;

                var typeName = types
                               ?? multiSearchDescriptor._FixedType
                               ?? new TypeNameResolver().GetTypeNameForType(operation._ClrType);
                if (operation._AllTypes)
                {
                    typeName = null;                     //force empty typename so we'll query all types.
                }
                var op     = new { index = index, type = typeName, search_type = this.GetSearchType(operation), preference = operation._Preference, routing = operation._Routing };
                var opJson = JsonConvert.SerializeObject(op, Formatting.None, IndexSerializationSettings);

                var action = "{0}\n".F(opJson);
                sb.Append(action);
                var searchJson = JsonConvert.SerializeObject(operation, Formatting.None, IndexSerializationSettings);
                sb.Append(searchJson + "\n");
            }
            var json = sb.ToString();
            var path = "_msearch";

            if (!multiSearchDescriptor._FixedIndex.IsNullOrEmpty())
            {
                if (!multiSearchDescriptor._FixedType.IsNullOrEmpty())
                {
                    path = multiSearchDescriptor._FixedType + "/" + path;
                }
                path = multiSearchDescriptor._FixedIndex + "/" + path;
            }
            var status = this.Connection.PostSync(path, json);

            var multiSearchConverter = new MultiSearchConverter(multiSearchDescriptor);
            var multiSearchResponse  = this.ToParsedResponse <MultiSearchResponse>(status,
                                                                                   extraConverters: new List <JsonConverter>
            {
                multiSearchConverter
            });

            return(multiSearchResponse);
        }
コード例 #3
0
        public MultiSearchResponse MultiSearch(MultiSearchDescriptor multiSearchDescriptor)
        {
            multiSearchDescriptor.ThrowIfNull("multiSearchDescriptor");
            var sb = new StringBuilder();

            foreach (var operation in multiSearchDescriptor._Operations.Values)
            {
                var indeces = operation._Indices.HasAny() ? string.Join(",", operation._Indices) : null;
                if (operation._AllIndices)
                    indeces = "_all";

                var index = indeces ??
                            multiSearchDescriptor._FixedIndex ??
                            new IndexNameResolver(this.Settings).GetIndexForType(operation._ClrType);

                var types = operation._Types.HasAny() ? string.Join(",", operation._Types) : null;

                var typeName = types
                               ?? multiSearchDescriptor._FixedType
                               ?? new TypeNameResolver().GetTypeNameForType(operation._ClrType);
                if (operation._AllTypes)
                    typeName = null; //force empty typename so we'll query all types.

                var op = new { index = index, type = typeName, search_type = this.GetSearchType(operation), preference = operation._Preference, routing = operation._Routing };
                var opJson = JsonConvert.SerializeObject(op, Formatting.None, IndexSerializationSettings);

                var action = "{0}\n".F(opJson);
                sb.Append(action);
                var searchJson = JsonConvert.SerializeObject(operation, Formatting.None, IndexSerializationSettings);
                sb.Append(searchJson + "\n");

            }
            var json = sb.ToString();
            var path = "_msearch";
            if (!multiSearchDescriptor._FixedIndex.IsNullOrEmpty())
            {
                if (!multiSearchDescriptor._FixedType.IsNullOrEmpty())
                    path = multiSearchDescriptor._FixedType + "/" + path;
                path = multiSearchDescriptor._FixedIndex + "/" + path;
            }
            var status = this.Connection.PostSync(path, json);

            var multiSearchConverter = new MultiSearchConverter(multiSearchDescriptor);
            var multiSearchResponse = this.ToParsedResponse<MultiSearchResponse>(status,
                extraConverters: new List<JsonConverter>
                {
                    multiSearchConverter
                });

            return multiSearchResponse;
        }
コード例 #4
0
        private JsonConverter CreateMultiSearchConverter(IMultiSearchRequest descriptor)
        {
            if (descriptor.Operations != null)
            {
                foreach (var kv in descriptor.Operations)
                {
                    SearchPathInfo.CloseOverAutomagicCovariantResultSelector(this.Infer, kv.Value);
                }
            }


            var multiSearchConverter = new MultiSearchConverter(_connectionSettings, descriptor);

            return(multiSearchConverter);
        }
コード例 #5
0
        private JsonConverter CreateMultiSearchConverter(MultiSearchDescriptor descriptor)
        {
            var multiSearchConverter = new MultiSearchConverter(_connectionSettings, descriptor);

            return(multiSearchConverter);
        }
コード例 #6
0
 private JsonConverter CreateMultiSearchConverter(MultiSearchDescriptor descriptor)
 {
     var multiSearchConverter = new MultiSearchConverter(_connectionSettings, descriptor);
     return multiSearchConverter;
 }
コード例 #7
0
		private JsonConverter CreateMultiSearchConverter(IMultiSearchRequest descriptor)
		{
			if (descriptor.Operations != null)
			{
				foreach (var kv in descriptor.Operations)
					SearchPathInfo.CloseOverAutomagicCovariantResultSelector(this.Infer, kv.Value);				
			}


			var multiSearchConverter = new MultiSearchConverter(_connectionSettings, descriptor);
			return multiSearchConverter;
		}