Recherche uniquemen locale

19 views
Skip to first unread message

Christophe Rosko

unread,
Apr 27, 2015, 11:18:23 AM4/27/15
to elastics...@googlegroups.com
Hello !


Actuellement j'ai un cluster avec un shard et plusieurs nodes, et j'utilise l'option 'auto_expand_replicas' => '0-all', de façon à ce que tous les serveurs aient l'ensemble des données.
Certains noeuds sont en Europe et d'autres en Amérique.

Quand je requête sur un serveur en Europe, j'ai remarqué dans les logs que parfois, la requête est envoyée vers un serveur en Amérique, ce qui rend la requête plus longue.
Y'a-t-il un moyen de forcer ElasticSearch à n'effectuer ses recherches qu'en local, tout en conservant la réplications entre les serveurs ?


Merci pour votre aide :)

David Pilato

unread,
Apr 27, 2015, 11:33:00 AM4/27/15
to elastics...@googlegroups.com
D’une manière générale, c’est une mauvaise pratique d’avoir une réplication sur 2 data centers différents.

Pour répondre à ta question, tu peux peut être utiliser ça http://www.elastic.co/guide/en/elasticsearch/guide/current/_search_options.html#_preference

_only_node:xyz


-- 
David Pilato - Developer | Evangelist 





--
--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Elasticsearch FR".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse elasticsearch-...@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse elastics...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/elasticsearch-fr.
Cette discussion peut être lue sur le Web à l'adresse https://groups.google.com/d/msgid/elasticsearch-fr/1342cfd1-1365-4330-bd09-093685adb0d9%40googlegroups.com.
Pour obtenir davantage d'options, consultez la page https://groups.google.com/d/optout.

Christophe Rosko

unread,
Apr 27, 2015, 12:01:40 PM4/27/15
to elastics...@googlegroups.com
Bonjour David,

Merci pour ta réponse, je vais tester ca.
Sais-tu si c'est possible de passer les préférences avec l'api PHP ? Je ne trouve rien à ce sujet.

Merci

David Pilato

unread,
Apr 27, 2015, 12:36:20 PM4/27/15
to elastics...@googlegroups.com
Non je ne sais pas. Mais je pense que le client PHP expose toutes les options.

-- 
David Pilato - Developer | Evangelist 





--
--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/
---
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes "Elasticsearch FR".
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse elasticsearch-...@googlegroups.com.
Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse elastics...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/elasticsearch-fr.

Christophe Rosko

unread,
Apr 28, 2015, 4:12:38 AM4/28/15
to elastics...@googlegroups.com
Bonjour,

J'ai pu faire passer les préférences avec php, l'option "_primary" fonctionne parfaitement.
En revanche si j'utilise les options _local ou _only_node:xxx, il continue de taper au hasard sur n'importe quel node...
N'y a-t-il pas un autre moyen de faire cela, avec un paramètre de conf ?

David Pilato

unread,
Apr 28, 2015, 4:18:04 AM4/28/15
to elastics...@googlegroups.com
à la place de xxx tu as bien mis l’id du node ? Pas son nom hein?

Christophe Rosko

unread,
Apr 28, 2015, 4:22:47 AM4/28/15
to elastics...@googlegroups.com
Comment connaître l'id du node ? Sur head je ne trouve que le nom donc je pensais que c'était aussi l'id

David Pilato

unread,
Apr 28, 2015, 4:34:36 AM4/28/15
to elastics...@googlegroups.com

Christophe Rosko

unread,
Apr 28, 2015, 4:50:11 AM4/28/15
to elastics...@googlegroups.com
Merci pour ton aide David, désolé je pose surement des questions simples mais je débute avec ES.
Effectivement avec only_node si je mets l'id du node local, cela fonctionne bien.
Mais pourquoi n'ai-je pas le même résultat avec _local ?


Cordialement,

Christophe Rosko
Tel : 01 42 29 61 70

Vous recevez ce message, car vous êtes abonné à un sujet dans le groupe Google Groupes "Elasticsearch FR".
Pour vous désabonner de ce sujet, visitez le site https://groups.google.com/d/topic/elasticsearch-fr/y7JRHP2fwvQ/unsubscribe.
Pour vous désabonner de ce groupe et de tous ses sujets, envoyez un e-mail à l'adresse elasticsearch-...@googlegroups.com.

Pour envoyer un message à ce groupe, envoyez un e-mail à l'adresse elastics...@googlegroups.com.
Visitez ce groupe à l'adresse http://groups.google.com/group/elasticsearch-fr.

David Pilato

unread,
Apr 28, 2015, 5:07:41 AM4/28/15
to elastics...@googlegroups.com
Il s’agit d’une préférence dans ce cas. Ca veut dire que si le shard est disponible sur le noeud local que tu interroges alors il va utiliser ce dernier.
Sinon, il ira chercher le shard ailleurs.

Je ne connais pas ton architecture exacte. Mais il y a à parier que le noeud n’a pas le shard en question.

Peut-être est-ce un Tribe node ?


Christophe Rosko

unread,
Apr 28, 2015, 5:38:21 AM4/28/15
to elastics...@googlegroups.com
L'architecture actuelle, c'est un noeud ES sur chaque front, chaque noeud possède toutes les données et ils sont répliqués entre eux via l'option 'auto_expand_replicas' => '0-all' .
La solution de forcer l'id du noeud à chaque requête ne me convient en fait pas parce qu'il y a une couche smartstack entre l'application et elasticsearch, donc l'appli ne sait pas à priori quel ES va recevoir la requête.

A la réflexion, ta première recommandation de faire deux clusters différents est certainement la meilleure, je vais partir là-dessus.
Merci pour tes réponses
Reply all
Reply to author
Forward
0 new messages