[英]Filter search results with elasticsearch
我正在為Elasticsearch使用以下PHP客戶端: https : //github.com/nervetattoo/elasticsearch ,但是我在添加多個字段以在搜索查詢中進行匹配時遇到了麻煩。
我想按類型添加過濾器(如果已設置)。
我已經使用過這種語法,但是搜索時僅考慮指定的第一個字段。
$type = ($type) ? $type : false;
$options = array(
'fields' => array('title', 'content', 'profile_id', 'type', 'name', 'description', 'date', 'url'),
'from' => 0,
'size' => 10,
'query' => array(
($type ?
array('match' => array('name' => $term, 'type' => $type)) :
array('match' => array('_all' => $term))
)
)
);
任何建議將不勝感激。
如果有人感興趣,我可以使用bool標志和調整語法來解決。
$options = array(
'fields' => array('title', 'content', 'profile_id', 'type', 'name', 'description', 'date', 'url'),
'from' => 0,
'size' => 10,
'query' => array(
($type ?
array(
'bool' => array(
'must' => array(
array('term' => array('_all' => $term)),
array('term' => array('type' => $type))
)
)
) :
array('match' => array('_all' => $term))
)
)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.