查询字符串,在ElasticSearch中指定term

时间:2016-12-20 07:00:13

标签: php elasticsearch

我有快速搜索用户注册索引。我需要通过某些字段为每个事件实现搜索。 (每个事件都有注册,但当然,我将它们存储在一个索引中)

我正在尝试使用以下参数进行搜索:

'query' => [
     'query_string' => [
          'query' => $query,
              'fields'=> ['name', 'lastName', 'email', ...]
           ],
      ],
 ]

但我还需要指定一个术语,它应该在注册中搜索特定事件。我的索引中有一个关键字字段: event_id

如何将此术语(event_id)添加到当前搜索请求中?

PS:已过滤已被删除(替换为 bool ,但不支持 query_string

或者为每个事件指定不同的索引类型: _type 会更好吗?

1 个答案:

答案 0 :(得分:2)

使用bool/filter,您绝对可以包含query_stringterm查询。试试这样:

'query' => [
     'bool' => [
         'filter' => [
             [
                'query_string' => [
                  'query' => $query,
                  'fields'=> ['name', 'lastName', 'email', ...]
                ],
             ],
             [
                'term' => [
                  'event_id' => '123'
                ]
             ]
         ]
     ]
 ]