Я новичок в Elasticsearch с .NET, используя NEST.Я пытаюсь выполнить простой поиск, чтобы соответствовать всем и интересовался только несколькими свойствами.Я не могу получить значения почти для всех полей в источнике.все показывает как нулевое значение
Индекс уже существует вasticsearch.
У меня есть класс, представляющий тип.
public class DocType
{
public long CommunicationsDate { get; set; }
public string ControlNumber { get; set; }
public string Kind { get; set; }
public string PrimaryCommuncationsName { get; set; }
public float RiskScore { get; set; }
}
, и мое отображение:
PUT relativity
{
"mappings": {
"doctype": {
"properties": {
"comms_date": {
"type": "date"
},
"control_number": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"kind": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"primary_comms_name": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"ignore_above": 256
}
}
},
"risk_score": {
"type": "float"
}
}
}
}
}
Следующий запрос возвращает количество хитов правильно, но значения равны нулю, за исключением свойства Kind.Не уверен, что я делаю не так здесь.Это потому, что имена свойств различаются в классе c # или чем-то еще?
return await _connection.Get<ElasticClient>().SearchAsync<DocType>(s =>
{
var searchDescriptor = s.Index("relativity")
.Type("DocType")
.Size(100)
.Source(sf => sf
.Includes(i => i
.Fields(
f => f.ControlNumber,
f => f.PrimaryCommuncationsName,
f => f.RiskScore,
f => f.Kind,
f => f.CommunicationsDate
)
)
);
}