Elastisearch不会通过带有动态类的嵌套调用返回数据

问题描述 投票:0回答:2

是Elastic search和NEST的新手,我正在尝试通过NEST与我的ES服务器建立连接。我的ES连接初始化如下所示。

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。

c# elasticsearch nest
2个回答
1
投票

查看屏幕快照中的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"));

该客户端的入门指南是elasticsearch-net-example GitHub存储库。这是构建ASP.NET Core Web应用程序以搜索Nuget包的演练。


0
投票

您的连接看起来不错,您能否通过单击它来验证DebugInfrormation下的详细摘要,并获取行查询和响应。

在邮递员上执行相同的查询后。

请在屏幕快照中显示的同一行上,将以下表达式复制并粘贴到快速监视窗口中。

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

您将获得详细信息,这将有助于您调查此问题。

© www.soinside.com 2019 - 2024. All rights reserved.