首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹性搜索:高级过滤器查询

弹性搜索:高级过滤器查询
EN

Stack Overflow用户
提问于 2015-11-30 08:39:45
回答 1查看 241关注 0票数 0

我正在为我目前的项目进行弹性搜索。我需要一个过滤器的用户基于他们的行业。请看我的密码一次。和mySql查询如下:

代码语言:javascript
复制
SELECT U.* FROM `users` `U`
JOIN `user_industries` `UI` ON `UI`.`user_id`=`U`.`id`
WHERE `UI`.`industry_id` IN('1','3','5');


$query = array("from" => $start,
            "size" => $recordslimit,
            "sort" => array(array('id' => 'desc')),
            "query" => array(
                "filtered" => array(
                    "query" => array("match_all" => array()),
                    "filter" => array(
                        "bool" => array(
                        'must' => array(array('term' => array('user_type' => 'v')),
                                array('term' => array('status' => 'a')),
                                array('term' => array('industries.id' => 1))
                                ),
                        'must_not' => array(
                                array('term' => array('subscription_type' => 'n'))
                            )
                        ))
        )));

我通过了一个行业价值。如何传递多个行业价值观?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-30 08:44:13

开局不错!!您可以通过使用 filter而不是term来实现您想要的结果,并在array()中指定值1, 3, 5

代码语言:javascript
复制
...
array('terms' => array('industries.id' => array(1, 3, 5)))
...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33994436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档