Site icon Eolya Consulting

SolrCloud (Solr 4.0) et les jointures cross-collections

Suite à l’article Solr 4.0 et jointures cross-index, voici ce qu’il en est dans un environnement SolrCloud.

Donc, les nouvelles sont plutôt mauvaises. Car, comme l’explique le ticket SOLR-4905, les recherches de type join cross-collection ne sont pas supportées avec Solrcloud.

Cependant, sous certaines conditions qui limitent cruellement l’intérêt de SolrCloud, il est possible de réaliser des jointures cross-collections.

Les conditions sont :

Je l’ai dit, c’est draconien comme conditions et cela limite grandement l’intérêt de SolrCloud.

Pour créer la collection et contrôler le nom des cores des réplica, il faut utiliser le Cores API et non pas la Collections API.

Alors que normalement, on aurait créer une collection d’un seul shard comme ceci en une seule commande :

curl 'http://localhost:8983/solr/admin/collections?action=CREATE&name=col1&numShards=1&replicationFactor=2&collection.configName=collection1'

Il faut créer chaque core sur chaque noeud du cloud, ce qui devient :

curl 'http://localhost:8983/solr/admin/cores?action=CREATE&name=col1&collection=col1&shard=1&collection.configName=collection1'
curl 'http://localhost:8993/solr/admin/cores?action=CREATE&name=col1&collection=col1&shard=1&collection.configName=collection1'

Avec 2 collections, la syntaxe d’une requête avec jointure est :

http://.../solr/articles/select?fl=xxx,yyy&q=energy&fqn{!join%20from=id%20to=id_author%20fromIndex=users}country:france

Ceci est clairement très limité (je l’ai déjà dit ?) et il faudrait que le ticket SOLR-4905 soit pris en charge.

Quitter la version mobile