Axios 对 Opensearch/Elasticsearch 的请求
Posted
技术标签:
【中文标题】Axios 对 Opensearch/Elasticsearch 的请求【英文标题】:Axios request to Opensearch/Elasticsearch 【发布时间】:2022-01-16 08:24:14 【问题描述】:目前可以将GET
和POST
添加到我的集合中,但需要能够进行更复杂的查询,我正在使用bodybuilder 来构建请求并作为我的客户使用axios。
但是,使用 POST
不会返回我指定的结果,而只会返回我索引中的前 10 个项目,而使用 GET
我无法为这些复杂的请求发送正文,只剩下POST
。
我已将我的数据从data:data
切换到body:data
,结果相同。
目前这是我的POST
,它再次返回数据,但不是我过滤的数据,只是我收藏的前 10 项。
任何见解将不胜感激!
export function searchQuery(search: string)
var body = bodybuilder().query("query_string", "query", search).build();
const data = JSON.stringify(body);
axios(
url: `$SEARCH_URL`,
method: "POST",
headers:
"Content-Type": "application/json",
,
body: data,
).then((res) =>
console.log(res);
);
这是我当前的数据日志:
"query":"query_string":"query":"Green"
【问题讨论】:
请登录data
以确保您向 ES 发送正确的请求。
手动对 ES 运行记录的请求以确保它过滤数据也是有意义的
这是我当前的数据日志:"query":"query_string":"query":"Green"
如果您直接对 Elasticsearch 运行此查询,它是否返回正确的数据?
不,它只返回我收藏中的前 10 个项目
【参考方案1】:
根据上述问题中的 cmets,当您直接针对 elasticsearch 运行查询时,您只会获得集合中的前 10 个项目。
这是因为如果搜索查询中不包含size
param,elasticsearch 默认只返回搜索结果中的 10 个文档。
如果你想得到超过 10 个结果,你需要修改你的搜索查询为
"size": 20, // change this according to your requirement
"query":
"query_string":
"query": "Green"
【讨论】:
@Adrianwritenow 已经很久了!如果它帮助您解决了您的问题,您能否接受并投票赞成答案。 TIA ;-)以上是关于Axios 对 Opensearch/Elasticsearch 的请求的主要内容,如果未能解决你的问题,请参考以下文章
vue 对axios get pust put delete 封装
如何使用 axios 对 cloudinary 进行直接 api 调用?