ElasticSearch не возвращает данные через вызов Nest с классом Dynamic - PullRequest
0 голосов
/ 16 октября 2019

Я новичок в Elastic search и NEST, я пытаюсь соединиться с моим сервером ES через NEST. Моя инициализация ES Connection выглядит следующим образом.

ElasticClient client = null;
        public  void Connect()

        {

            var local = new Uri("http://192.168.40.95:9200/");

            var settings = new ConnectionSettings(local).DisableDirectStreaming();

            client = new ElasticClient(settings);

            settings.DefaultIndex("gisgcc18q4");

            ReadAllData();
        }

        public void ReadAllData()
        {
           var x= client.Search<dynamic>(s=> s.MatchAll());
        } 

Ответ прикреплен как изображение ниже, image

Я никогда не получаю ни хитов, ни данных. Неужели я допустил ошибку в своем соединителе? Также, пожалуйста, предложите мне хорошие уроки для преобразования запроса JSOn ES в NEST.

Ответы [ 2 ]

1 голос
/ 19 октября 2019

Глядя на Uri на скриншоте

POST /gisgcc18q4/object/_search?typed_keys=true

, вы предполагаете, что вы используете версию старше 7, например, 5 или 6, где используются типы документов. В этом случае имя типа документа "object" было выведено из типа dynamic, переданного в качестве аргумента общего параметра, но я подозреваю, что документы не были проиндексированы с именем типа документа "object", но что-то еще.

Если индекс "gisgcc18q4" содержит только один тип документа, вы можете использовать

var x = client.Search<dynamic>(s=> s.MatchAll().AllTypes());

Или вы можете передать конкретное имя типа документа для использования

var x = client.Search<dynamic>(s=> s.MatchAll().Type("_doc"));

Хорошим руководством по началу работы для клиента является asticsearch-net-example GitHub. Это пошаговое руководство по созданию веб-приложения ASP.NET Core для поиска в пакетах Nuget.

1 голос
/ 17 октября 2019

Ваше соединение выглядит нормально, вы можете проверить подробную сводку в DebugInfrormation, щелкнув по ней и получить запрос строки и ответ.

После применения того же запроса к почтальону.

Скопируйте и вставьте приведенное ниже выражение в окно быстрого просмотра на той же строке, которая отображается на скриншоте.

((Elasticsearch.Net.ApiCallDetails)response.ApiCall).DebugInformation

Выполучите подробную информацию, вам будет полезно исследовать эту проблему.

...