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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elastisearch不会通过带有动态类的嵌套调用返回数据相关的知识,希望对你有一定的参考价值。

是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。

答案

查看屏幕快照中的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包的演练。

另一答案

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

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

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

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

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

以上是关于Elastisearch不会通过带有动态类的嵌套调用返回数据的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有对象的数组中的数据动态添加到嵌套数组中?

带有 JSX 和类的 ReactJS 'Hello World' 不会向浏览器打印任何内容

带有对象数组的可扩展动态嵌套列表

嵌套类的值初始化

SVG中嵌套类的CSS选择器

如何解析 json 值的动态变化。带有 2 个嵌套 dic 的字典,然后是数组,然后是 dic