protected virtual DataType GetProviderFieldType(string documentType, string fieldName, IndexDocumentFieldValueType fieldType) { switch (fieldType) { case IndexDocumentFieldValueType.Char: case IndexDocumentFieldValueType.String: return(DataType.String); case IndexDocumentFieldValueType.Byte: case IndexDocumentFieldValueType.Short: case IndexDocumentFieldValueType.Integer: return(DataType.Int32); case IndexDocumentFieldValueType.Long: return(DataType.Int64); case IndexDocumentFieldValueType.Double: return(DataType.Double); case IndexDocumentFieldValueType.Boolean: return(DataType.Boolean); case IndexDocumentFieldValueType.DateTime: return(DataType.DateTimeOffset); case IndexDocumentFieldValueType.GeoPoint: return(DataType.GeographyPoint); case IndexDocumentFieldValueType.Complex: return(DataType.Complex); default: throw new ArgumentException($"Field {fieldName} has unsupported type {fieldType}", nameof(fieldType)); } }
public static void AddFilterableValue(this IndexDocument document, string name, object value, IndexDocumentFieldValueType valueType) { if (value != null) { document.Add(new IndexDocumentField(name, value) { IsRetrievable = true, IsFilterable = true, ValueType = valueType, }); } }