У меня в Elasticsearch настроены два индекса, в которых хранятся данные разных типов, и я пытаюсь получить результаты поиска, используя гнездо из обоих индексов одновременно.Я настроил модели, как показано ниже ...
public class Person
{
[Number(Name="person_id")]
public int Id { get; set; }
[Date(Name = "person_created")]
public DateTime Created { get; set; }
...
}
public class Work {
[Number(Name="work_id")]
public int Id { get; set; }
[Date(Name = "work_created")]
public DateTime Created { get; set; }
...
}
При запросе по одному индексу я могу сделать следующее и получить результаты, сопоставленные с типом моей модели ...
var request = new SearchRequest("works")
{
From = searchQuery.Offset,
Size = searchQuery.PageSize,
Query = new QueryStringQuery { Query = searchQuery.SearchTerm },
};
var result = _elasticClient.Search<Work>(request);
Однако при выполнении запроса, подобного следующему, как указать nest, с какими типами сопоставлять результаты по индексу?
var request = new SearchRequest("works,person")
{
...
}
var result = _elasticClient.Search<object> ...
Другие ответы, которые я видел, предлагают сделать что-то вроде следующего, ноЯ думаю, что функция типов была удалена в NEST 7.0 ...
client.Search<object>(s => s
.Size(100)
.SearchType(SearchType.Count)
.Type(Types.Type(typeof(Dog), typeof(Cat)))