gpt4 book ai didi

Node.js ElastiSearch 客户端。如何在 _msearch 方法中使用 filter_path 参数

转载 作者:行者123 更新时间:2023-11-29 02:56:44 28 4
gpt4 key购买 nike

我使用 https://github.com/elastic/elasticsearch-js我的应用程序中的 ElasticSearch 客户端。我想使用 Multi Search API 并通过 filter_path 参数减少响应。在 Kibana 中请求看起来像:

POST _msearch?filter_path=responses.hits.total
{ "index": "first_index" }
{"query": {"term": {"status": 1}} }
{ "index": "second_index" }
{"query": {"term": {"status": 1}} }

响应:

{
"responses": [
{
"hits": {
"total": 1935
}
},
{
"hits": {
"total": 1212
}
}
]
}

但是我在client.msearch 方法中找不到这个filter_path 参数的正确位置。像这样的东西:

client.msearch({
body: [
{ "index": "first_index" },
{ "q": 'filter_path=responses.hits.total' },
{"query": {"term": {"status": 1}} },
{ "index": "second_index" },
{ "q": 'filter_path=responses.hits.total' },
{"query": {"term": {"status": 1}} }
]
})

不起作用。我如何使用 Node.js ElasticSearch 客户端发送此请求?

最佳答案

filterPath 键应该在与body 相同的级别给出。

client.msearch({
body: [
{ "index": "first_index" },
{"query": {"term": {"status": 1}} },
{ "index": "second_index" },
{ "q": 'filter_path=responses.hits.total' },
{"query": {"term": {"status": 1}} }
],
filterPath: "responses.hits.total"
})

msearch 函数采用 MSearchParams 类型的参数。

msearch<T>(params: MSearchParams): Promise<MSearchResponse<T>>;

我建议您安装 elasticsearch type definition所以你可以看到类型层次结构

export interface MSearchParams extends GenericParams {
search_type?: "query_then_fetch" | "query_and_fetch" | "dfs_query_then_fetch" | "dfs_query_and_fetch";
maxConcurrentSearches?: number;
index?: NameList;
type?: NameList;
}

export interface GenericParams {
requestTimeout?: number;
maxRetries?: number;
method?: string;
body?: any;
ignore?: number | number[];
filterPath?: string | string[];
}

关于Node.js ElastiSearch 客户端。如何在 _msearch 方法中使用 filter_path 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49925615/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com