2017-07-19 1 views
0

J'ai un cluster de recherche élastique qui a plus de 1000 index, la plupart de mes index ont un horodatage spécifique au format époque, mais peu d'index ont un horodatage en UTC et cela provoque une requête crash quand quelqu'un essaie de chercher à partir de kibana, j'essaye de lister tous les index qui n'ont pas de fichier ts appelé, je suis capable d'obtenir la cartographie en faisant des boucles culr -XGET http://es-node1:9200/ */_ mapping/terrain/ts? assezComment chercher des index qui n'ont pas de champ spécifique dans Elasticsearch

va cependant à travers tous les 1000 résultats sont très fastidieux, quelqu'un pourrait me indiquer s'il vous plaît requête droit d'exclure tous les indices qui n'ont pas de champ « ts »

Si je lance la requête à partir des nœuds de Kibana dans mon groupe commence spiking le cpu, le filtre que je suis en cours d'exécution est

"filter": { 
    "list": { 
    "0": { 
     "type": "time", 
     "field": "ts", 
     "from": "now-5m", 
     "to": "now", 
     "mandate": "must", 
     "active": true, 
     "alias": "", 
     "id": 0 
    }, 
    "1": { 
     "type": "querystring", 
     "query": "_exists_:ts", 
     "mandate": "must", 
     "active": true, 
     "alias": "", 
     "id": 1 
    } 
    }, 
    "ids": [ 
    0, 
    1 
    ], 
    "hide": true 
} 

},

et c'est le journal que je reçois dans mon nœud ES.

[2017-07-19 06:35:12,874][DEBUG][action.search   ] [Gargoyle] [ws][4], node[FbXhw2ERQT6QDPmNCuOMGQ], [R], v[21], s[STARTED], a[id=iH_6483qRHmJGSk95rOtQg]: Failed to execute [[email protected]] lastShard [true] 

RemoteTransportException [[Captain America] [es-node1: 9300] [indices: données/lecture/recherche [Phase/requête]]]; imbriqué: SearchParseException [n'a pas réussi à analyser la source de recherche [{"query": {"filtré": {"query": {"bool": {"should": [{"query_string": {"requête": ""} }]}}, "filter": {"bool": {"must": [{"range": {"ts": {"from": 1500445811001, "to": 1500446111001}}}, {"fquery" : {"query": {"query_string": {"query": "ts: (1500446010000)"}}, "_ cache": true}}]}}}}, "highlight": {"fields": {} "fragment_size": 2147483647, "pre_tags": ["@ start-highlight @"], "post_tags": ["@ end-highlight @"]}, "taille": 1000, "sort": [{"_ score ": {" order ":" desc "}}, {" ts ": {" order ":" desc "}}]}]]; imbriqué: SearchParseException [Aucun mappage trouvé pour [ts] afin de trier sur]; Causée par: SearchParseException [n'a pas réussi à analyser la source de recherche [{"query": {"filtré": {"query": {"bool": {"should": [{"query_string": {"requête": " "}}]}}," filter ": {" bool ": {" must ": [{" range ": {" ts ": {" from ": 1500445811001," à ": 1500446111001}}}, {" fquery ": {" query ": {" query_string ": {" requête ":" ts: (1500446010000) "}}," _ cache ": true}}]}}}}," highlight ": {" fields ": {}, "fragment_size": 2147483647, "pre_tags": ["@ start-highlight @"], "post_tags": ["@ end-highlight @"]}, "taille": 1000, "trier": [{ "_score": {"order": "desc"}}, {"ts": {"order": "desc"}}]}]]; imbriqué: SearchParseException [Aucun mappage trouvé pour [ts] afin de trier sur]; à org.elasticsearch.search.SearchService.parseSource (SearchService.java:855) à org.elasticsearch.search.SearchService.createContext (SearchService.java:654) à org.elasticsearch.search.SearchService.createAndPutContext (SearchService. java: 620) à org.elasticsearch.search.SearchService.executeQueryPhase (SearchService.java:371) à org.elasticsearch.search.action.SearchServiceTransportAction $ SearchQueryTransportHandler.messageReceived (SearchServiceTransportAction.java:368) à org.elasticsearch. search.action.SearchServiceTransportAction $ SearchQueryTransportHandler.messageReceived (SearchServiceTransportAction.java:365) à org.elasticsearch.transport.TransportRequestHandler.messageReceived (TransportRequestHandler.java:33) at org.ela sticsearch.transport.RequestHandlerRegistry.processMessageReceived (RequestHandlerRegistry.java:75) à org.elasticsearch.transport.netty.MessageChannelHandler $ RequestHandler.doRun (MessageChannelHandler.java:300) à org.elasticsearch.common.util.concurrent.AbstractRunnable. exécuter (AbstractRunnable.java:37) à java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1142) à java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:617) à java. lang.Thread.run (Thread.java:745) Causée par: SearchParseException [Aucune correspondance trouvée pour [ts] afin de trier] org.elasticsearch.search.sort.SortParseElement.addSortField (SortParseElement.java: 212) à org.elasticsearch.search.sort.SortParseElement.addCompoundSortField (SortParseElement.java:186) à org.elasticsearch.search.sort.SortParseElement.parse (SortParseElement.java:84) à org.elasticsearch. J'essaie de supprimer les index qui n'ont pas de champ "ts", pour cela je cherche une requête où je peut obtenir seulement les indices qui n'a pas le champ ts, Quelqu'un pourrait m'aider s'il vous plaît avec la requête?

Répondre

0

En Kibana, vous pouvez utiliser le _exists_ query et ajoutez ce qui suit à votre requête

_exists_:ts AND ...the rest of your query 
+0

Val, Merci pour votre réponse, quand je fais la requête avec _exists_: ts encore son donnant SearchParseException imbriqué: SearchParseException [Aucune correspondance trouvée pour [ts] afin de trier]; – Narendra522

+0

Pouvez-vous ouvrir l'onglet de demande et mettre à jour votre question avec la requête complète qui est envoyée à ES? – Val

+0

sure la mise à jour de la requête – Narendra522