在 NEST 中更改 ElasticSearch track_total_hits
Change ElasticSearch track_total_hits in NEST
我 运行 想到了 ElasticSearch 的示例,并阅读 this link 说默认设置为 10,000,这也可以在搜索调用中更改,就像这个例子
GET twitter/_search
{
"track_total_hits": 100,
"query": {
"match" : {
"message" : "Elasticsearch"
}
}
}
问题是,我想在 NEST 上做同样的事情,但我没能复制它。我发现的唯一类似的东西,只接受布尔值而不是数字。是否可以通过 NEST 更改总数?
这是我试过的代码:
var results = elasticClient.Search<MyClass>(s => s
.Query(q => q.QueryString(q2 => q2.Query(readLine)
.Fields(f => f.Field(p => p.MyField)))).TrackTotalHits(true));
如@russcam here所述,目前您可以通过将 ISearchRequest
转换为 IRequest<SearchRequestParameters>
:
var client = new ElasticClient();
var searchResponse = client.Search<Document>(s =>
{
IRequest<SearchRequestParameters> request = s;
request.RequestParameters.SetQueryString("track_total_hits", 1000);
return s;
});
它将应用它作为查询字符串参数
我 运行 想到了 ElasticSearch 的示例,并阅读 this link 说默认设置为 10,000,这也可以在搜索调用中更改,就像这个例子
GET twitter/_search
{
"track_total_hits": 100,
"query": {
"match" : {
"message" : "Elasticsearch"
}
}
}
问题是,我想在 NEST 上做同样的事情,但我没能复制它。我发现的唯一类似的东西,只接受布尔值而不是数字。是否可以通过 NEST 更改总数?
这是我试过的代码:
var results = elasticClient.Search<MyClass>(s => s
.Query(q => q.QueryString(q2 => q2.Query(readLine)
.Fields(f => f.Field(p => p.MyField)))).TrackTotalHits(true));
如@russcam here所述,目前您可以通过将 ISearchRequest
转换为 IRequest<SearchRequestParameters>
:
var client = new ElasticClient();
var searchResponse = client.Search<Document>(s =>
{
IRequest<SearchRequestParameters> request = s;
request.RequestParameters.SetQueryString("track_total_hits", 1000);
return s;
});
它将应用它作为查询字符串参数