1

J'ai une exigence dans laquelle je veux rechercher deux ou plusieurs index de recherche lorsqu'une requête particulière est soumise au serveur de recherche. Existe-t-il un moyen de rechercher collectivement deux index de recherche ou plus (tous indexent des choses différentes sur la même entité recherchée) et d'obtenir un seul ensemble de réponses (réponse de deux ou plusieurs index de recherche) lors de l'utilisation de Lucene/Solr/Elasticsearch? Si cela n'est pas possible, j'essaie d'installer quelque chose au niveau API où les index de recherche sont abstraits des clients de recherche où la requête est soumise à l'API & L'API sous le capot lance des recherches en parallèle à deux ou plusieurs recherche les index et combine les résultats et les renvoie? Le point ici est que je ne veux pas réinventer la roue si un tel framework API est disponible ou même si c'est possible en utilisant Lucene/Solr/Elasticsearch out of the box ou en installant simplement un plugin & configuration il?Recherche fédérée en dehors de la boîte en utilisant Lucene/Solr/ElasticSearch

Répondre

1

Vous pouvez facilement faire cela en utilisant elasticsearch. Pendant la recherche, vous pouvez mentionner les noms des indices dans un format séparé par des virgules comme ci-dessous -

curl -XPOST 'http://localhost:9200/index-a,index-b,index-c/_search -d '{ 
    "query": { 
    "match_all": {} 
    } 
}' 

Pour des raisons de commodité, vous pouvez également utiliser aliases. Alias ​​peut se lier à plusieurs noms d'index et vous pouvez utiliser un seul alias pour parler à tous ces indices.

+0

Je pense que cela résoudrait le problème que je recherche. Comment pouvez-vous suggérer une approche basée sur la configuration pour la même chose? Je ne veux pas ajouter une dépendance sur les noms d'indice à connecter à l'application et je devrais pouvoir ajouter/supprimer dynamiquement des index à la volée. Y a-t-il un moyen de le faire? – techcraver

+0

J'ai trouvé des alias dans ma réponse. Vous pouvez l'utiliser. Au lieu du nom d'index, vous pouvez frapper l'alias et l'alias se résoudra à multiplier les noms d'index. Vous pouvez ainsi extraire plusieurs informations de nom d'index de l'utilisateur. –