Я использую следующий код для индексации документов и результатов тестирования с помощью NEST в основном приложении .net. Но он не возвращает никакой записи.
Так что либо я неправильно индексирую, либо у меня проблема с запросом.
Очень новичок в эластичном поиске. Поэтому не знаю, что не так со следующим кодом, поскольку я пытаюсь индексировать текст текстового файла и искать его для тестирования.
private static void Index()
{
var settings = new ConnectionSettings().DefaultIndex("ProjectDocuments");
var client = new ElasticClient(settings);
//First, you need to make the routing required when you are creating your index, like this:
client.CreateIndex("ProjectDocuments", d => d
.Mappings(mapping => mapping
.Map<Document>(map => map
.RoutingField(routing => routing
.Required(true))
.AutoMap())
));
Routing routingFromInt = 1;
Document document = new Document()
{
Id = 1,
Content = "Some Text File Text"
};
IIndexResponse result = client.Index<Document>(document, selector => selector
.Id(1)
.Routing(routingFromInt));
//TODO: Following returns 0. so might be issue with indexing itself.
ISearchResponse<Document> searchResponse = client.Search<Document>(query => query.Query(q => q.MatchAll()).Routing(routingFromInt));
var documents = searchResponse.Documents;
}





Проблема была с именем индекса по умолчанию. Имя индекса с Верхний регистр не поддерживается в эластичном поиске.
поэтому «ПроектДокументы» вызывал проблему. Изменил на "проект_документы" и начал работать.
Ок. Полезный. Спасибо.
Вы можете проверить
.IsValidна любом ответе, чтобы понять, действителен ли запрос/ответ. Это конструкция NEST