2012-03-06 1 views
0

ElasticSearch에 "elastica"PHP 클라이언트를 사용하고 있습니다."Elastica_ResultSet"개체에서 결과를 얻는 방법

저는 OO 프로그래밍, 특히 PHP에서 약간 새로운 것입니다.

그러나 elastica PHP 클라이언트를 사용하여 내 elasticsearch 서버를 검색하고 응답을 "Elastica_ResultSet"개체에 저장했습니다. 나는 그 물건의 내용에 접근하는 행운이 전혀 없다.

총 결과 수를 나열하고 결과의 elasticsearch 레코드 ID를 찾고 그 결과에 대한 elasticsearch 레코드의 전체 내용을 가져오고 싶습니다.

Elastica 클래스 참조는 여기에서 찾을 수 있습니다. http://ruflin.github.com/Elastica/api/index.html, 어떻게해야할지 모르겠지만. 여기

내가 여기까지 얻기 위해 사용 된 PHP 코드 :

<?php 
function __autoload_elastica ($class) { 
    $path = str_replace('_', '/', $class); 

    if (file_exists('extentions/' . $path . '.php')) { 
     require_once('extentions/' . $path . '.php'); 
     //echo "$path EXISTS!!!"; 
    } 
} 
spl_autoload_register('__autoload_elastica'); 

// New ES Client 
$client = new Elastica_Client(); 

// Set Index 
$index = $client->getIndex('test1'); 

// Set Document Type 
$type = $index->getType('user'); 

// Perform Search 
$resultSet = $index->search('halo'); 
?> 

답변

2

개월 각종 연습의 몇 후에는 간단한 위해서 var_dump ($ 결과 집합)를 수행하는 것 같았다 구조로 날을 제공 한 것입니다 당신이 탄성 섬유 검색 반환 출력 할 결과 집합

에 그러나 일반적으로 var_export을 사용할 수 있도록 basicaly)

+0

위해서 var_dump를 사용하여 당신이 Xdebug는이 dev에 환경에 구성되어 있는지 확인하는 것입니다 또 한가지. var_dump() 호출을 중첩하고 구문을 강조 표시하여 훨씬 쉽게 읽을 수있게합니다. –

2

을하고, 반환 된 객체의 내용은 ... 아무도 이러한 기본적인 질문에 대한 제안을했다 없다는 것을 믿을 수 없어 엘라스 티아 _ResultSet 객체는 count, totalHits 패싯 등과 같이 사용할 수있는 여러 속성을 가지고 있습니다.

도는 Elastica_Result 배열 단순히은 PHP의 foreach 함수

을 사용해서 Elastica_ResultSet getResults() 메소드를 호출함으로써 또는 방법) (제 (전류)와 다음을 사용하거나하여 이들 중 하나에 액세스 할 수있는 개체 보유 Elastica_ 결과의 데이터를 생성하고 사용할 수있는 몇 가지 방법이 있습니다. getId(), getVersion(), getData() 등등.

// Set Document Type 
$type = $index->getType('user'); 

// Perform Search 
$resultSet = $index->search('halo'); 

// Get IDs 
$resultIDs = array(); 
foreach($resultSet as $result){ 
    $resultIDs[] = $result->getId(); 
} 

나는 조금 어려웠던 것을 알려 드리고 싶습니다. 쿼리 및 결과

이 도움이
// Set the query terms for your search 
$queryTerm = new Elastica_Query_Terms(); 
$queryTerm->setTerms('user', array("test", "test1")); 

// Create the sorting array 
$sort = array("user" => array("order" => "desc")); 

// Create the query 
$query = Elastica_Query::create($queryTerm); 

// Set the sorting to the query 
$query->setSort($sort); 

// Perform the search 
$resultSet = $index->search($query); 

희망의 정렬