예제 #1
0
        public void CreateIndexSettingsAndMappingsForDocument(string index,
                                                              IndexSettings indexSettings,
                                                              IndexAliases indexAliases,
                                                              IndexWarmers indexWarmers,
                                                              EntityContextInfo entityInfo,
                                                              MappingDefinition mappingDefinition)
        {
            if (_processedItems.Contains("_index" + index))
            {
                return;
            }
            _processedItems.Add("_index" + index);
            var elasticCrudJsonWriter = new ElasticJsonWriter();

            elasticCrudJsonWriter.JsonWriter.WriteStartObject();
            CreateIndexSettings(elasticCrudJsonWriter, indexSettings);
            indexAliases.WriteJson(elasticCrudJsonWriter);
            indexWarmers.WriteJson(elasticCrudJsonWriter);

            IndexSettingsCreatePropertyMappingForTopDocument(entityInfo, mappingDefinition, elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();

            CreateIndexCommand(elasticCrudJsonWriter.GetJsonString(), index);
        }
예제 #2
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("limit");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue("value", _limit, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #3
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("prefix");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue(_field, _prefix, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #4
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WriteStartArray();
     elasticCrudJsonWriter.JsonWriter.WriteValue(Longitude);
     elasticCrudJsonWriter.JsonWriter.WriteValue(Latitude);
     elasticCrudJsonWriter.JsonWriter.WriteEndArray();
 }
예제 #5
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("exists");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue("field", _field, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #6
0
파일: OrderAgg.cs 프로젝트: hawful70/Puppy
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("order");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue(_field, _order.ToString(), elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #7
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue("type", DefaultGeoShapes.Point, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("coordinates");
     Coordinates.WriteJson(elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #8
0
 private void CreateParentMappingForDocument(ElasticJsonWriter elasticCrudJsonWriter, string parentType)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("_parent");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("type");
     elasticCrudJsonWriter.JsonWriter.WriteValue(parentType);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #9
0
 /// <summary>
 ///     "_routing": { "required": true },
 /// </summary>
 /// <param name="elasticCrudJsonWriter"></param>
 private void CreateForceRoutingMappingForDocument(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("_routing");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("required");
     elasticCrudJsonWriter.JsonWriter.WriteValue("true");
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #10
0
 public override void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue("key", KeyValue, elasticCrudJsonWriter, KeySet);
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("from");
     elasticCrudJsonWriter.JsonWriter.WriteValue(_value);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #11
0
        private void WriteValues(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("random_score");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            JsonHelper.WriteValue("seed", _seed, elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #12
0
파일: OrFilter.cs 프로젝트: hawful70/Puppy
        public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("or");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            WriteOrFilterList(elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #13
0
        /// "settings" : { "number_of_shards" : 1 },
        private void CreateIndexSettings(ElasticJsonWriter elasticCrudJsonWriter, IndexSettings indexSettings)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("settings");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            indexSettings.WriteJson(elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #14
0
        public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("term");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            JsonHelper.WriteValue(_term, _termValue, elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #15
0
 public static void WriteValue(string key, object valueObj, ElasticJsonWriter elasticCrudJsonWriter,
                               bool writeValue = true)
 {
     if (writeValue)
     {
         elasticCrudJsonWriter.JsonWriter.WritePropertyName(key);
         elasticCrudJsonWriter.JsonWriter.WriteValue(valueObj);
     }
 }
예제 #16
0
 private void ProccessPropertyMappingsWithoutTypeName(ElasticJsonWriter elasticCrudJsonWriter,
                                                      EntityContextInfo entityInfo, ElasticMapping elasticMapping)
 {
     //"properties": {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("properties");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     elasticMapping.MapEntityValues(entityInfo, elasticCrudJsonWriter, true, CreatePropertyMappings);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #17
0
 //"aliases" : {
 //  "april_2014" : {},
 //  "year_2014" : {}
 //},
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("aliases");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     foreach (var alias in Aliases)
     {
         alias.WriteJson(elasticCrudJsonWriter);
     }
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #18
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("geohash_cell");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     elasticCrudJsonWriter.JsonWriter.WritePropertyName(_field);
     _location.WriteJson(elasticCrudJsonWriter);
     JsonHelper.WriteValue("precision", _precision, elasticCrudJsonWriter);
     JsonHelper.WriteValue("neighbors", _neighbors, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #19
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("warmers");
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     foreach (var warmer in Warmers)
     {
         warmer.WriteJson(elasticCrudJsonWriter);
     }
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #20
0
        public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("fquery");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            elasticCrudJsonWriter.JsonWriter.WritePropertyName("query");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            _query.WriteJson(elasticCrudJsonWriter);
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #21
0
파일: Analysis.cs 프로젝트: hawful70/Puppy
        public virtual void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("analysis");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            Tokenizers.WriteJson(elasticCrudJsonWriter);
            Filters.WriteJson(elasticCrudJsonWriter);
            CharFilters.WriteJson(elasticCrudJsonWriter);
            Analyzer.WriteJson(elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #22
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue("type", DefaultGeoShapes.Envelope, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("coordinates");
     elasticCrudJsonWriter.JsonWriter.WriteStartArray();
     foreach (var item in Coordinates)
     {
         item.WriteJson(elasticCrudJsonWriter);
     }
     elasticCrudJsonWriter.JsonWriter.WriteEndArray();
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #23
0
        public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("span_multi");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            elasticCrudJsonWriter.JsonWriter.WritePropertyName("match");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            _query.WriteJson(elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #24
0
        protected virtual void WriteJsonBase(ElasticJsonWriter elasticCrudJsonWriter,
                                             Action <ElasticJsonWriter> writeFilterSpecific)
        {
            if (AnalyzerSet)
            {
                elasticCrudJsonWriter.JsonWriter.WritePropertyName(Name);
                elasticCrudJsonWriter.JsonWriter.WriteStartObject();

                writeFilterSpecific.Invoke(elasticCrudJsonWriter);

                elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            }
        }
예제 #25
0
        //{
        // "query" : {
        //	  "match" : {
        //		"name" : {
        //			"query" : "group"
        //		}
        //	  }
        //  }
        //}
        public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("match");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            elasticCrudJsonWriter.JsonWriter.WritePropertyName(_field);
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            WriteBasePropertiesJson(elasticCrudJsonWriter);

            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #26
0
 public void WriteJson(ElasticJsonWriter elasticCrudJsonWriter)
 {
     elasticCrudJsonWriter.JsonWriter.WriteStartObject();
     JsonHelper.WriteValue("type", DefaultGeoShapes.GeometryCollection, elasticCrudJsonWriter);
     elasticCrudJsonWriter.JsonWriter.WritePropertyName("geometries");
     elasticCrudJsonWriter.JsonWriter.WriteStartArray();
     foreach (var item in Geometries)
     {
         (item as IGeoType).WriteJson(elasticCrudJsonWriter);
     }
     elasticCrudJsonWriter.JsonWriter.WriteEndArray();
     elasticCrudJsonWriter.JsonWriter.WriteEndObject();
 }
예제 #27
0
        public void UpdateSettings(string index, IndexUpdateSettings indexUpdateSettings)
        {
            var elasticCrudJsonWriter = new ElasticJsonWriter();

            elasticCrudJsonWriter.JsonWriter.WriteStartObject();
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("index");
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();
            indexUpdateSettings.WriteJson(elasticCrudJsonWriter);
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();

            SettingsCommand(elasticCrudJsonWriter.GetJsonString(), index);
        }
예제 #28
0
        /// <summary>
        ///     Create a new mapping for the child type in the parent document index
        /// </summary>
        /// <param name="entityInfo">       </param>
        /// <param name="elasticMapping">   </param>
        /// <param name="item">             </param>
        /// <param name="mappingDefinition"> definition for the type mappings </param>
        private void CreatePropertyMappingForChildDocument(EntityContextInfo entityInfo, ElasticMapping elasticMapping,
                                                           EntityContextInfo item, MappingDefinition mappingDefinition)
        {
            var childMapping =
                _elasticSerializerConfiguration.ElasticMappingResolver.GetElasticSearchMapping(item.EntityType);

            var parentMapping =
                _elasticSerializerConfiguration.ElasticMappingResolver.GetElasticSearchMapping(item.ParentEntityType);

            var childType  = childMapping.GetDocumentType(item.EntityType);
            var parentType = parentMapping.GetDocumentType(item.ParentEntityType);

            var processedId = childType + "_" + parentType;

            if (_processedItems.Contains(childType))
            {
                var test = CommandTypes.Find(t => t.StartsWith(childType));
                if (test != processedId)
                {
                    throw new ElasticException("InitMappings: Not supported, child documents can only have one parent");
                }
                return;
            }
            _processedItems.Add(childType);
            CommandTypes.Add(processedId);

            var elasticCrudJsonWriter = new ElasticJsonWriter();

            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            elasticCrudJsonWriter.JsonWriter.WritePropertyName(childType);
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            mappingDefinition.Source.WriteJson(elasticCrudJsonWriter);
            mappingDefinition.All.WriteJson(elasticCrudJsonWriter);

            CreateParentMappingForDocument(
                elasticCrudJsonWriter,
                elasticMapping.GetDocumentType(item.ParentEntityType));

            if (item.RoutingDefinition.RoutingId != null && _elasticSerializerConfiguration.UserDefinedRouting)
            {
                CreateForceRoutingMappingForDocument(elasticCrudJsonWriter);
            }

            ProccessPropertyMappingsWithoutTypeName(elasticCrudJsonWriter, item, childMapping);
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            CreateMappingCommandForTypeWithExistingIndex(elasticCrudJsonWriter.GetJsonString(),
                                                         elasticMapping.GetIndexForType(entityInfo.EntityType), childMapping.GetDocumentType(item.EntityType));
        }
예제 #29
0
        protected void WriteInternalJson(ElasticJsonWriter elasticCrudJsonWriter, AliasAction aliasAction,
                                         Action <ElasticJsonWriter> writeFilterSpecific = null)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName(aliasAction.ToString());
            elasticCrudJsonWriter.JsonWriter.WriteStartObject();

            JsonHelper.WriteValue("index", _index, elasticCrudJsonWriter);
            JsonHelper.WriteValue("alias", _alias, elasticCrudJsonWriter);
            if (writeFilterSpecific != null)
            {
                writeFilterSpecific.Invoke(elasticCrudJsonWriter);
            }
            elasticCrudJsonWriter.JsonWriter.WriteEndObject();
        }
예제 #30
0
파일: OrFilter.cs 프로젝트: hawful70/Puppy
        private void WriteOrFilterList(ElasticJsonWriter elasticCrudJsonWriter)
        {
            elasticCrudJsonWriter.JsonWriter.WritePropertyName("filters");
            elasticCrudJsonWriter.JsonWriter.WriteStartArray();

            foreach (var or in _or)
            {
                elasticCrudJsonWriter.JsonWriter.WriteStartObject();
                or.WriteJson(elasticCrudJsonWriter);
                elasticCrudJsonWriter.JsonWriter.WriteEndObject();
            }

            elasticCrudJsonWriter.JsonWriter.WriteEndArray();
        }