2 votes

Solr Changez le champ de la chaîne de caractères en entier multivalué

Le contexte : J'ai exécuté le sharding par année dans mon noyau solr de statistiques, en utilisant une commande dspace :

[dspace]/bin/dspace stats-util -s

Selon : https://wiki.duraspace.org/display/DSDOC5x/SOLR+Statistiques+Maintenance#SOLRStatistiquesMaintenance-SolrShardingByYear

Ensuite, il y a plusieurs noyaux, répartis par année : statistiques, statistiques-2015, statistiques-2014, etc.

Cependant, les champs multivalués sont incorrects maintenant, ils semblent être une chaîne de caractères :

"owningComm": [
      "8,2,1,2,1,1"
]

Lorsque nous essayons d'interroger, par exemple, owningComm:1, aucun résultat n'est donné.

Le comportement correct, avant le sharding, était un "tableau" d'entiers :

"owningComm": [
      5,
      2,
      1,
      2,
      1,
      1
]

Le champ dans schema.xml de Solr 4 est :

<field name="owningComm" type="integer" 
       indexed="true" stored="true" 
       required="false" multiValued="true" />`

J'ai déjà essayé de tokeniser la chaîne avec des virgules, mais sans succès.

Existe-t-il un moyen de mettre à jour ce champ en nombres entiers ? En supprimant les guillemets ou quelque chose comme ça ?

Nous avons des millions de documents stockés.

0voto

terrywb Points 2386

J'ai jeté un coup d'oeil à certaines de mes données de shard, et je vois le même résultat que vous avez signalé. Il est intéressant de noter qu'après la mise à niveau vers DSpace 4 ou DSpace 5, je me souviens que je ne pouvais pas effectuer de recherche par owningComm. J'avais supposé que ce champ avait été abandonné. Je soupçonne maintenant que le problème que vous avez signalé en est la cause sous-jacente.

Je recommande de signaler ce problème comme un bogue de DSpace : https://jira.duraspace.org/projects/DS/issues

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X