Bonjour,
Voici: j'ai un site php qui utilise une instance solr (elle tourne tout va bien ^^) . Nous indexons certaines données bibliographiques, dont des fichiers xml avec quelques métadonnées en sus. Exemple: nom du transcripteur = transcripteur (nom de l'index).
transcripteur est un index multivalué, déclaré:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
 <field name="transcripteur" type="string" indexed="true" stored="true" multiValued="true"/>
Or certaines transcriptions ont plusieurs transcripteurs (1 à 0,n); et c'est là le drame : dans mes facettes il semble que seul soit compté la première valeur et pas les autres.

Donc, pour exemple:
soit 1 transcription, g226_1f_091 (son nom), a deux transcripteurs (les deux valeurs sont indexées): "SDC" et "NS".
Si je fais une recherche retournant tous les documents "*": j'ai bien ma transcription et dans les facettes à la valeur "transcripteur" j'ai :
SDC (1)
NS (0)
Il devrait me la compter deux fois.
Je peux obtenir toutes les transcriptions faites par "NS" en tapant dans la zone de recherche: ; ainsi, je retrouve ma transcription aussi.

Pour les questions de code:
j'indexe ainsi:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$t = new transcription();
$t->get_folio_transcription($f->getId());
$data_arr = $t->get_transcription_transcripteurs();// retourne les bons résultats
		if (is_array($data_arr)) {
			foreach($data_arr as $id_data => $data) {
				$doc->addField('transcripteur', $data['fullname']);
			}
		}
try {
			$updateResponse = $client->addDocument($doc);
		} catch (Exception $e) {
			$html->dbg($doc->toArray());
			$html->erreur($e);
			$html->body_close();
			exit;
		}
et je recherche:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
$query->setFacet(true);
$query->setFacetMinCount(1);
$query->addFacetField('transcripteur');
$query->setFacetMethod('enum', 'transcripteur');
 
if ($ans->facet_counts->facet_fields['transcripteur'] !='') {
	echo '<strong>';
	echo gettext('Transcripteur');
	echo '</strong>';
	echo PHP_EOL . '<ul>';
	foreach ($ans->facet_counts->facet_fields['transcripteur'] as $facet => $nbr_facet) {
		$data = array(  'q'=> $query->getQuery() . ' AND transcripteur:"' . $facet . '"');//ORIGINAL
		//$data = array(  'q'=> $query->getQuery() . ' AND transcripteur:"' . $facet . '"', 'fq' => $query->getFacetMethod('transcripteur') . ' AND transcripteur:"' . $facet . '"');
		//$data = array(  'q'=> $query->getQuery(), 'fq' => $query->getFacetMethod('transcripteur'));
		$url =  http_build_query($data, '', '&amp;');//&facet=true&facet.field=transcripteur
		echo PHP_EOL . '<li>';
		echo '<a href="' . $_SERVER['PHP_SELF'] . '?' . $url . '">' . $facet . '</a>&nbsp;(' . $nbr_facet .')';
		echo '</li>';
	}
	echo '</ul>';
}
Vous pouvez voir quelques essais glané en furetant à droite à gauche mais la solution n'a pas encore été levée
Tout aide sera la bienvenue, merci.