Elasticsearch

[Elasticsearch-PHP] 검색

Jack Moon 2015. 8. 27. 10:46

1. Match Query

 

$params['index'] = '인덱스';
$params['type']  = '타입';
$params['body']['query']['match']['필드명'] = '검색어';

$results = $client->search($params);

 

결과중 주요값 가져오기

 

$milliseconds = $results['took'];
$maxScore     = $results['hits']['max_score'];
$score = $results['hits']['hits'][0]['_score'];
$doc   = $results['hits']['hits'][0]['_source'];


2. Bool Query

 

$params['index'] = 'my_index';
$params['type']  = 'my_type';
$params['body']['query']['bool']['must'] = array(
    array('match' => array('필드명1' => '검색어1')),
    array('match' => array('필드명2' => '검색어2')),
);

$results = $client->search($params);

 

(Sample) 검색어와 기간을 넣은 일반적인 검색질의 -> 한글 분석기로 분석하고

 

$params['index'] = 'news';
$params['type']  = 'news1';
$params['body']['query']['bool']['must'] = array(
 array('multi_match' => array(
  'fields' => array("title", "contents"),
  'query' => $q,
  'operator' => "and",
  'analyzer' => "korean_analyzer"
 )),
 array('range' => array(    
  "timestamp" => array(
    "from" => $fromstamp,
    "to" => $tostamp
 ))),
);