2012-03-06 6 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

ヶ月OOの練習のカップルの後に、それは簡単なのvar_dump($のResultSetを)実行するように見えた構造を提供してくれましたでしょうそして、返されたオブジェクトの内容...誰もがこのような基本的な質問のための任意の提案を行っていないことを信じることはできません。)

+0

のvar_dumpを使用すると、あなたはXdebugをあなたのdevの環境に設定されていることを確認することであるもう一つのヒント。これは、var_dump()の呼び出しを入れ子にして構文を強調し、読みやすくします。 –

2

のでbasicalyあなたは

出力にあなたの結果セットをでvar_exportを使用することができます。しかし、一般的にエラスティカ検索戻りますエラスティカ_ResultSetオブジェクトは、count、totalHitsファセットなどのように使用できるいくつかの属性を持っています。

、またこれらはElastica_ResultSet getResults()メソッドを呼び出すことによって、または

(電流)と次()メソッドを使用するか、単にPHPのforeachの機能を使用することによってのいずれかでアクセスできるオブジェクトElastica_Resultの配列を保持しています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); 

希望のソート