我想使用弹性搜索来搜索大型地址数据库,并使其像其他一些应用程序一样,我首先使用邮政编码,这对于缩小搜索查询的其余部分非常有用.
我做
my $scroll = $e->scroll_helper(index => 'pdb',search_type => 'scan',size => 100,body => { query => { bool => { filter => [ {match => { pcode => $postcode }},],should => [ {match => { address => $keyword }},{match => { name => $keyword }},} } } );
然而,这只是为$post邮件吐出所有内容,无论$keyword是什么,结果集都不会进一步减少.
我需要将$postcode作为强制条件,但也要另外将其他两个字段作为全文搜索考虑在内.
我该怎么做(我正在查看文档,可能会解释json-> perl hashrefs错误,欢迎任何建议)
对于一个假设的例子:
用户输入NW1 4AQ,上述查询将立即返回,例如,Albany Street和Portland Street,如果用户查询Portland和该邮政编码,而不是同时获得这两个结果,我预计只有Portland Street才能成为结果.现在用上面的内容它只是不断返回两个条目.
解决方法
原文地址:https://www.jb51.cc/Perl/172155.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。