如何查看 NEST.SearchRequest.Type 属性 对我的 ElasticSearch 查询的影响
How can I see the NEST.SearchRequest.Type property's effect on my ElasticSearch Query
我正在尝试使用 NEST SearchRequest 对象在我的 ElasticSearch 索引中查询类型的动态列表。
public object Search(object runTimeData)
{
var request = new SearchRequest()
{
From = 0,
Size = 10
};
request = SetRouting(request, runTimeData);
request = SetIndices(request, runTimeData);
request = SetTypes(request, runTimeData);
request = SetQuery(request, runTimeData);
...
var results = _searchClient.Search<BaseOfAllTypes>(request);
return results;
}
...
private SearchRequest SetTypes(SearchRequest request, object runTimeData)
{
request.Types = GetTypesForRuntime(runTimeData);
}
如果我在执行搜索的行上通过调试器调用 System.Text.Encoding.UTF8.GetString(_searchClient.Serializer.Serialize(request))
,我在 JSON:
中看不到任何与类型相关的内容
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"simple_query_string": {
"query": "my query data here",
"default_operator": "and"
}
}
]
}
}
}
返回的查询结果就好像类型被正确过滤了一样。 运行 直接通过 elasticsearch-head returns 生成了 JSON 所有类型的结果,所以似乎在请求的序列化中没有看到我真正应该看到的东西看看。
"types" 出现在 HTTP 请求 header 中。您看到的是 HTTP 请求 body。要获取请求 header,请使用
var requestHeader = results.ConnectionStatus.RequestUrl;
您还将获得集群地址和索引名称信息以及类型信息。
注意,这仅在 Search()
操作成功时有效。否则 results
可能是 null
并且此语句将抛出 NPE。
我正在尝试使用 NEST SearchRequest 对象在我的 ElasticSearch 索引中查询类型的动态列表。
public object Search(object runTimeData)
{
var request = new SearchRequest()
{
From = 0,
Size = 10
};
request = SetRouting(request, runTimeData);
request = SetIndices(request, runTimeData);
request = SetTypes(request, runTimeData);
request = SetQuery(request, runTimeData);
...
var results = _searchClient.Search<BaseOfAllTypes>(request);
return results;
}
...
private SearchRequest SetTypes(SearchRequest request, object runTimeData)
{
request.Types = GetTypesForRuntime(runTimeData);
}
如果我在执行搜索的行上通过调试器调用 System.Text.Encoding.UTF8.GetString(_searchClient.Serializer.Serialize(request))
,我在 JSON:
{
"from": 0,
"size": 10,
"query": {
"bool": {
"must": [
{
"simple_query_string": {
"query": "my query data here",
"default_operator": "and"
}
}
]
}
}
}
返回的查询结果就好像类型被正确过滤了一样。 运行 直接通过 elasticsearch-head returns 生成了 JSON 所有类型的结果,所以似乎在请求的序列化中没有看到我真正应该看到的东西看看。
"types" 出现在 HTTP 请求 header 中。您看到的是 HTTP 请求 body。要获取请求 header,请使用
var requestHeader = results.ConnectionStatus.RequestUrl;
您还将获得集群地址和索引名称信息以及类型信息。
注意,这仅在 Search()
操作成功时有效。否则 results
可能是 null
并且此语句将抛出 NPE。