.net - Elasticsearch.Net 1.0.2 + NEST 1.0.2无法正常工作?

标签 .net json elasticsearch nest elasticsearch-net

我使用以下查询:

var searchResults = client.Search<Contact>(s => s
            .Index("someIndex")
            .From(0)
            .Size(20)
            .AllTypes()
            .MatchAll()
            .Query(q => q
                .Bool(bq => bq
                    .Must(mb => mb
                        .QueryString(qs => qs
                            .DefaultField(c => c.ValueCollection.Channel)
                            .Query("E-Mail")
                        )
                    )
                )
            )
        );

当我注释掉.Query()部分时,我按预期获得了20个匹配,但是有了.Query()部分,总是有0个匹配。

使用elastichead我尝试了相同的操作,它生成了这个JSON:
{
  "from": 0,
  "size": 20,
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "E-Mail",
            "default_field": "contact.ValueCollection.Channel"
          }
        }
      ]
    }
  }
}

结果为20。

然后我检查了ConnectionStatus.Request和JSON是否不同:
{
  "from": 0,
  "size": 20,
  "query": {
    "bool": {
      "must": [
        {
          "query_string": {
            "query": "E-Mail",
            "default_field": "valueCollection.channel" <--- WRONG!!!
          }
        }
      ]
    }
  }
}
default_field生成错误。我究竟做错了什么?

最佳答案

发现了一些东西:

        var settings = new ConnectionSettings(uri)
            .SetDefaultPropertyNameInferrer(p => p);

这可以告诉NEST不要使用camelCase属性名称。

关于.net - Elasticsearch.Net 1.0.2 + NEST 1.0.2无法正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25420669/

相关文章:

.net - mono:在 Linux 上的命令行中构建 .Net 解决方案

c# - Pinvoke 与 ManagedCode

c# - 录音波 naudio 库 - 声音质量很差

json - 使用具有对象数组属性的 json 对象从 powershell 调用rest方法

java - 如何将以下 JSON 打印为漂亮的格式?

elasticsearch - 在Elasticsearch中以任何方式进行向后分页吗(with golang)

c# - 存储库模式是如何真正完成的?

.net - 录制高质量的声音?

regex - 从 NiFi 中的纪元中提取日期

java - Android首次使用addValueEventListener的方法