Ok je comprends !
Je vais m’exercer avec l'API mais avant de continuer je voudrais d'abord éclaircir un concept de base pour bien comprendre la direction à prendre lors de mes tests de l'API...
En gros, je vais rentrer une liste de produit (des fringues) avec pour chacun un id, un nom, une description, un prix, des tailles, etc.. comme toutes les fringues ont la même fiche descriptive, je suppose que je devrai faire un seul mapping pour mon index (dites moi si je me trompe).
L'équipe marketing veut avoir la main sur les synonymes (je leur ferai une interface sur leur espace de gestion qui générera le fichier "synonym.txt" ou se trouve l'ensemble des synonymes).
Donc en fait je voudrai que ce fameux dictionnaire des synonymes soit appliqué, lors d'une recherche, à l'ensemble des champs d'un produit (nom, description, etc.)
Première question : dois-je créer un index avec un type obligatoirement ? style "myindex" et "mytype" ?
Deuxième question : pour les synonymes, si je veux qu'il soit appliqué à tous les champs dois-je nomer mon analyzer default comme tu me l'a indiqué ci dessus ? avec un truc du style :
$elasticaIndex->create(array(
'number_of_shards' => 5,
'number_of_replicas' => 1,
'analysis' => array(
'analyzer' => array(
'default' => array(
'tokenizer' => 'standard',
'filter' => 'synonym'
)
),
'filter' => array(
'synonym' => array(
'type' => 'synonym',
'synonyms_path' => '/etc/elasticsearch/synonym.txt'
)
)
)
), true);
J'utilise maintenant le client
https://github.com/ruflin/Elastica qui est beaucoup plus complet et avec qui j'ai réussi à créer mon index comprenant mon analyzer (qui ne fonctionne pas encore lol)
Merci