gpt4 book ai didi

perl - 使用 perl 客户端进行 Elasticsearch 搜索

转载 作者:行者123 更新时间:2023-12-02 22:54:29 24 4
gpt4 key购买 nike

我正在尝试做一些应该很简单但我无法让它工作的事情。我已经查看并搜索了所有内容以找到 perl search::elsticsearch 的详细文档。我只能找到 CPAN 文档,就搜索而言,几乎没有提及。我在这里搜索,找不到重复的问题。

我有 Elasticsearch 和文件节拍。 Filebeat 正在将 syslog 发送到 elasticsearch。我只想搜索具有匹配文本和日期范围的消息。我可以找到这些消息,但是当我尝试添加日期范围时,查询失败。这是来自 kibana 开发工具的查询。

GET _search
{
"query": {
"bool": {
"filter": [
{ "term": { "message": "metrics" }},
{ "range": { "timestamp": { "gte": "now-15m" }}}
]
}
}
}

我没有得到我正在寻找的东西,但没有错误。

这是我对 perl 的尝试
    my $results=$e->search(
body => {
query => {
bool => {
filter => {
term => { message => 'metrics' },
range => { timestamp => { 'gte' => 'now-15m' }}
}

}
}
}
);

这是错误。
[Request] ** [http://x.x.x.x:9200]-[400] 
[parsing_exception]
[range] malformed query, expected [END_OBJECT] but found [FIELD_NAME],
with: {"col":69,"line":1}, called from sub Search::Elasticsearch::Role::Client::Direct::__ANON__
at ./elasticsearchTest.pl line 15.
With vars: {'body' => {'status' => 400,'error' => {
'root_cause' => [{'col' => 69,'reason' => '[range]
malformed query, expected [END_OBJECT] but found [FIELD_NAME]',
'type' => 'parsing_exception','line' => 1}],'col' => 69,
'reason' => '[range] malformed query, expected [END_OBJECT] but found [FIELD_NAME]',
'type' => 'parsing_exception','line' => 1}},'request' => {'serialize' => 'std',
'path' => '/_search','ignore' => [],'mime_type' => 'application/json',
'body' => {
'query' => {
'bool' =>
{'filter' => {'range' => {'timestamp' => {'gte' => 'now-15m'}},
'term' => {'message' => 'metrics'}}}}},
'qs' => {},'method' => 'GET'},'status_code' => 400}

有人可以帮我弄清楚如何使用 search::elasticsearch perl 模块进行搜索吗?

最佳答案

多个过滤器子句必须作为数组中的单独 JSON 对象传递(如在您的初始 JSON 查询中),而不是同一 JSON 对象中的多个过滤器。这映射到您必须如何创建 Perl 数据结构。

filter => [
{term => { message => 'metrics' }},
{range => { timestamp => { 'gte' => 'now-15m' }}}
]

关于perl - 使用 perl 客户端进行 Elasticsearch 搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60084583/

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