2014-04-30 4 views
0

J'ai lu la documentation de elasticsearch mais il manque des exemples, pour moi.Elasticsearch boosting syntax PHP

J'ai mis quelques documents dans le moteur-es, ils contiennent les champs "texte" et "titre". Maintenant, je veux augmenter les hits dans le champ "titre". J'utilise le php-api.

J'ai essayé celui-ci:

$params_ci['index'] = 'all'; 
$params_ci['type'] = 'all'; 
$params_ci['body']['query']['query_string']['query'] = $query; 
$params_ci['body']['function_score']['functions']['field_value_factor'] = array('field' => 'title', 
                       'factor' => 1.2) 
$client = ElasticClientFactory::build(); 
$client->search($params_ci) 

Mais je reçois une erreur. Sans le "function_score" cela fonctionne.

... Parse Failure [No parser for element [function_score] ... 

Le plus gros problème pour moi est de savoir comment traduire le JSON dans la documentation à la bonne place sous forme de tableaux. Je sais que JSON est comme un tableau mais souvent il ne correspond pas à ma hiérarchie de tableau?

Utilise ElasticSearch Version: ElasticSearch-1.1.1

Répondre

0

Le droit SYNAX est:

$params_ci['body']['query']['function_score']['functions']['field_value_factor'] = array('field' => 'title', 'factor' => 1.2)