2016-06-27 11 views
-1

Ich versuche zu indizieren, wo das Feld, das ich zugeordnet habe, ein Objekt erfordert.Erstellen von json_array-Objekten mit Elasticsearch-PHP

Nach: https://www.elastic.co/guide/en/elasticsearch/client/php-api/current/_dealing_with_json_arrays_and_objects_in_php.html

$params['body'] = [ 

      'location' => new \stdClass() 

    ]; 

sollte ein leeres PHP-Objekt, um anzuzeigen, waren ausreichend, aber es scheitert an der Miss Match diese Position besagt, ist ein Objekt-Mapping und es ist falsch.

Ich habe folgende auch versucht:

$params['body'] = [ 

      'location' => new \stdClass(['lat'=>0,'lon'=>0]) 

    ]; 

Aber das mit dem gleichen Grunde fehlgeschlagen.

Allerdings, wenn ich eine rohe curl api tun, um Elasticsearch:

curl -XPOST 'http://localhost:9200/my_index/my_type/1' -d '{ "location": { "lat": 0.0 "lon": 0.0}}'

das funktioniert.

Antwort

0

Sie können auch einfach versuchen, ein assoziatives Array verwendet wird, wird es funktionieren:

$params['body'] = [ 

     'location' => array('lat' => 0, 'lon' => 0) 

];