50 lines
1.5 KiB
C#
50 lines
1.5 KiB
C#
// Copyright (c) Microsoft. All rights reserved.
|
|
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Text.Json.Serialization;
|
|
using Microsoft.Extensions.VectorData;
|
|
|
|
namespace SemanticKernel.Connectors.Weaviate.UnitTests;
|
|
|
|
#pragma warning disable CS8618
|
|
|
|
public sealed record WeaviateHotel
|
|
{
|
|
/// <summary>The key of the record.</summary>
|
|
[VectorStoreKey]
|
|
public Guid HotelId { get; init; }
|
|
|
|
/// <summary>A string metadata field.</summary>
|
|
[VectorStoreData(IsIndexed = true)]
|
|
public string? HotelName { get; set; }
|
|
|
|
/// <summary>An int metadata field.</summary>
|
|
[VectorStoreData]
|
|
public int HotelCode { get; set; }
|
|
|
|
/// <summary>A float metadata field.</summary>
|
|
[VectorStoreData]
|
|
public float? HotelRating { get; set; }
|
|
|
|
/// <summary>A bool metadata field.</summary>
|
|
[JsonPropertyName("parking_is_included")]
|
|
[VectorStoreData]
|
|
public bool ParkingIncluded { get; set; }
|
|
|
|
/// <summary>An array metadata field.</summary>
|
|
[VectorStoreData]
|
|
public List<string> Tags { get; set; } = [];
|
|
|
|
/// <summary>A data field.</summary>
|
|
[VectorStoreData(IsFullTextIndexed = true)]
|
|
public string Description { get; set; }
|
|
|
|
[VectorStoreData]
|
|
public DateTimeOffset Timestamp { get; set; }
|
|
|
|
/// <summary>A vector field.</summary>
|
|
[VectorStoreVector(Dimensions: 4, DistanceFunction = DistanceFunction.CosineDistance, IndexKind = IndexKind.Hnsw)]
|
|
public ReadOnlyMemory<float>? DescriptionEmbedding { get; set; }
|
|
}
|