对c#的弹性搜索的困难请求

时间:2016-06-01 16:13:45

标签: c# .net elasticsearch nest elasticsearch-net

我正在尝试进行复杂查询以使用ElasticSearch Nest库

我需要对字段Text和NormalizedText进行全文搜索,并按日期范围和列表标记进行过滤。例如,我希望Text或NormalizedText包含"关键字"和CreatedDate的范围是01.01.2016 - 01.06.2016,sntag是tag1或tag2或tag3

我尝试发出此请求,但我收到错误:" {在POST上对无效的低级别调用构建的无效NEST响应:/ post_index / elasticitem / _search?pretty = true}"如何提出这个要求是正确的?

        var result = es_cli.Client.Search<ElasticItem>(s =>
         s.Skip(skip)
        .Sort(c => c.Descending("createdDate"))
        .Take(itemonpage)
        .Index(index)
        .Query(f1 =>
             f1.DateRange(x => x.Field(fff => fff.CreatedDate).GreaterThanOrEquals(filter.start))
             && f1.DateRange(x => x.Field(fff => fff.CreatedDate).LessThanOrEquals(filter.end))
             && (f1.Match(e => e.Field(ee => ee.Text).Query(searchString)) || f1.Match(e => e.Field(ee =>ee.NormalizedText).Query(searchString)))
             && f1.Terms(x=>x.Field(xx=>xx.Sntag).MinimumShouldMatch(1).Terms(filter.SourceIDs))
             )
        );

filter.start和filter.end它是DateTime。 searchString是字符串。 filter.SourceIDs是String数组

PS。调试信息

在POST上对不成功的低级别调用构建无效的NEST响应:/ post_index / elasticitem / _search?pretty = true

此API调用的审计跟踪:

  • BadResponse:Node:http://192.168.14.57:9200/ Took:00:00:01.6093332

    ServerError:ServerError:400Type:search_phase_execution_exception原因:&#34;所有分片都失败&#34;

OriginalException:System.Net.WebException:远程服务器返回错误:(400)Bad Request。

at System.Net.HttpWebRequest.GetResponse()    在Elasticsearch.Net.HttpConnection.Request [TReturn](RequestData requestData)在c:\ code \ elasticsearch-net \ src \ Elasticsearch.Net \ Connection \ HttpConnection.cs:第138行

请求:

响应:

0 个答案:

没有答案