从2.4升级到5后,Perl弹性查询中断
发布时间:2020-12-16 06:14:08 所属栏目:大数据 来源:网络整理
导读:正如标题所示,我正在升级到ES5.我原来的ES查询看起来像: my $response = $elastic-do_request_new( { query = { filtered = { filter = { or = [ { term = { _type = { value = "some_val1" } } },{ term = { _type = { value = "some_val2" } } },] },quer
正如标题所示,我正在升级到ES5.我原来的ES查询看起来像:
my $response = $elastic->do_request_new( { query => { filtered => { filter => { or => [ { term => { _type => { value => "some_val1" } } },{ term => { _type => { value => "some_val2" } } },] },query => { query_string => { query => $qstring,rewrite => "scoring_boolean",analyze_wildcard => "true",} } } },sort => [ qw(_score) ],size => 50,},); 我的更新看起来像: my $response = $elastic->do_request_new( { query => { bool => { should => [ { term => { _type => { value => "some_val1" } } },],must => { query_string => { query => $qstring,} } } },); 但是,在我的弹性数据库中搜索确切的字符串时,我返回零结果: { "took" : 3,"timed_out" : false,"_shards" : { "total" : 5,"successful" : 5,"failed" : 0 },"hits" : { "total" : 0,"max_score" : null,"hits" : [ ] } } 关于可能发生的事情的任何想法?我的猜测是我的查询结构错了.谢谢! 解决方法
更新:以下固定查询:
my $response = $elastic->do_request_new( { query => { bool => { must => [ { query_string => { query => $qstring,rewrite => "scoring_boolean",} ],filter => { bool => { should => [ { term => { _type => { value => "some_val1" } } },{ term => { _type => { value => "some_val2" } } },); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |