113 votes

Elastic Search: comment voir les données indexées

J'ai eu un problème avec ElasticSearch et Rails, où certaines données n'étaient pas indexées correctement en raison d'attr_protected. Où Elastic Search stocke-t-il les données indexées? Il serait utile de vérifier si les données indexées sont fausses.

Vérifier le mappage avec Tire.index('models').mapping n'aide pas, le champ est répertorié.

175voto

DrTech Points 7453

Probablement la meilleure façon d'explorer votre cluster ElasticSearch est d'utiliser elasticsearch-tête.

Vous pouvez l'installer en faisant:

cd elasticsearch/
./bin/plugin -install mobz/elasticsearch-head

Alors (en supposant ElasticSearch est déjà en cours d'exécution sur votre machine locale), ouvrez une fenêtre de navigateur:

http://localhost:9200/_plugin/head/

Alternativement, vous pouvez simplement utiliser curl à partir de la ligne de commande, par exemple:

Vérifier le mappage pour un indice:

curl -XGET 'http://127.0.0.1:9200/my_index/_mapping?pretty=1' 

Obtenir quelques exemples de documents:

curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1' 

Voir les termes stockées dans un domaine particulier (c'est à dire comment ce champ a été analysé):

curl -XGET 'http://127.0.0.1:9200/my_index/_search?pretty=1'  -d '
 {
    "facets" : {
       "my_terms" : {
          "terms" : {
             "size" : 50,
             "field" : "foo"
          }
       }
    }
 }

Plus disponible ici: http://www.elasticsearch.org/guide

Mise à JOUR : Sens plugin dans Marvel

De loin le moyen le plus facile de la rédaction curl-les commandes de style pour Elasticsearch est le Sens plugin Marvel.

Il est livré avec source en soulignant, à peu mise en retrait et la saisie semi-automatique.

Remarque: le Sens était à l'origine un autonome chrome plugin, mais fait maintenant partie de la Merveille du projet.

11voto

Oleg Points 51

Navigateur de données ElasticSearch

Recherche, graphiques, configuration en un clic ....

5voto

Rich Points 593

L'Agrégation De Solution

Le problème peut être résolu par le regroupement des données; DrTech de réponse utilisé facettes de gérer cela. Cependant, ce est déprécié selon elasticsearch 1.0 référence.

Warning

Facets are deprecated and will be removed in a future release. You are encouraged to
migrate to aggregations instead.

Les facettes sont remplacés par des granulats - Introduit d'une manière accessible dans le Elasticsearch Guide qui permet de charger un exemple dans le sens..

Court De Solution

La solution est la même à l'exception des agrégations exiger aggs au lieu de facets et avec un nombre de 0 qui fixe la limite à max entier - l'exemple de code nécessite le Plugin Marvel

# Basic aggregation
GET /houses/occupier/_search?search_type=count
{
    "aggs" : {
        "indexed_occupier_names" : {    <= Whatever you want this to be
            "terms" : {
              "field" : "first_name",    <= Name of the field you want to aggregate
              "size" : 0
            }
        }
    }
}

Solution Complète

Voici le code de détection d'un test - exemple de maisons de l'indice, avec un occupant de type, et un champ prenom:

DELETE /houses

# Index example docs
POST /houses/occupier/_bulk
{ "index": {}}
{ "first_name": "john" }
{ "index": {}}
{ "first_name": "john" }
{ "index": {}}
{ "first_name": "mark" }


# Basic aggregation
GET /houses/occupier/_search?search_type=count
{
    "aggs" : {
        "indexed_occupier_names" : {
            "terms" : {
              "field" : "first_name",
              "size" : 0
            }
        }
    }
}

Réponse

Réponse montrant pertinentes du code d'agrégation. Avec deux clés dans l'index, Jean et Marc.

    ....
    "aggregations": {
      "indexed_occupier_names": {
         "buckets": [
            {
               "key": "john",     
               "doc_count": 2     <= 2 documents matching
            },                        
            {
               "key": "mark",
               "doc_count": 1     <= 1 document matching
            }
         ]
      }
   }
   ....

0voto

Alex Le Points 194

Le plugin ElasticSearch Head est un plugin bien meilleur et complet que le plugin Browser. D'une manière ou d'une autre, le plug-in de navigateur d'OlegKunitsyn cesse d'afficher les données pour moi tandis que Head fonctionne parfaitement. Head dispose également d'un générateur de requête pour vous aider à créer rapidement une requête.

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