Inserindo dados em massa no Elastic Search

From Basef
Jump to: navigation, search

Criação do índice:

PUT /pessoas
{
  "settings": {
    "index": {
      "number_of_shards": 3,
      "number_of_replicas": 0
    },
    "analysis": {
      "filter": {
         "portuguese_stop": {
          "type":       "stop",
          "stopwords":  "_portuguese_" 
        },
        "portuguese_stemmer": {
          "type": "stemmer",
          "language": "light_portuguese"
        },
        "filtro_de_sinonimos": {
          "type": "synonym",
          "synonyms": [
            "futebol => futebol,society",
            "society => society,futebol",
            "volei,voleibol,volleyball",
            "esport => esport,futebol,society,volei,basquet",
            "exat => exat,matematic,fisic,computaca",
            "arte => arte,pintur,teatr,music,cinem"
          ]
        }
      },
      "analyzer": {
        "sinonimos": {
          "tokenizer": "standard",
          "filter": [
            "lowercase",
            "portuguese_stop",
            "portuguese_stemmer",
            "filtro_de_sinonimos"
          ]
        }
      }
    }
  },
  "mappings": {
    "registros": {
      "_all": {
        "type": "string",
        "index": "analyzed",
        "analyzer": "portuguese"
      },
      "properties": {
        "cidade": {
          "type": "string",
          "fields": {
            "original": { 
              "type": "string", 
              "index": "not_analyzed" 
            }
          },
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "estado": {
          "type": "string",
          "index": "not_analyzed" 
        },
        "formação": {
          "type": "string",
          "fields": {
            "original": { 
              "type": "string", 
              "index": "not_analyzed" 
            }
          },
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "interesses": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese",
          "search_analyzer": "sinonimos"
        },
        "nome": {
          "type": "string",
          "fields": {
            "original": { 
              "type": "string", 
              "index": "not_analyzed" 
            }
          },
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "país": {
          "type": "string",
          "fields": {
            "original": { 
              "type": "string", 
              "index": "not_analyzed" 
            }
          },
          "index": "analyzed",
          "analyzer": "portuguese"
        }
      }
    }
  }
}

Exemplo de inserção de 10 documentos em massa:

POST /pessoas/registros/_bulk
{"create": {}}
{"nome": "Abdalla Yussef Tauil Neto", "cidade": "São José do Rio Claro", "formação": "Letras", "estado": "MT", "país": "Brasil", "interesses": ["futebol","society","volei"] }
{"create": {}}
{"nome": "Abdullah Hassan Akram Fayad", "cidade": "Senhora da Gloria", "formação": "Física", "estado": "MG", "país": "Brasil", "interesses": ["basquete"] }
{"create": {}}
{"nome": "Abdy Augusto Silva", "cidade": "Tamboril do Piaui", "formação": "Artes Cênicas", "estado": "PI", "país": "Brasil", "interesses": ["futebol","society","volei","voleibol"] }
{"create": {}}
{"nome": "Abel dos Santos Beserra", "cidade": "Arapongas", "formação": "Artes Cênicas", "estado": "PR", "país": "Brasil", "interesses": [] }
{"create": {}}
{"nome": "Abelardo Fukasawa Borges", "cidade": "Bação", "formação": "Estatística", "estado": "MG", "país": "Brasil", "interesses": ["society"] }
{"create": {}}
{"nome": "Abhner Matheus Londero Rossini", "cidade": "Teixeira", "formação": "Estatística", "estado": "PB", "país": "Brasil", "interesses": ["artes","pintura"] }
{"create": {}}
{"nome": "Abidan Henrique da Silva", "cidade": "Bom Jesus", "formação": "Artes Cênicas", "estado": "SC", "país": "Brasil", "interesses": [] }
{"create": {}}
{"nome": "Abigail Lanuza de Novais Moreira", "cidade": "Monte Alegre", "formação": "Estatística", "estado": "SC", "país": "Brasil", "interesses": [] }
{"create": {}}
{"nome": "Abilio Augusto Jose Forni", "cidade": "Olho D'Água Do Casado", "formação": "História", "estado": "AL", "país": "Brasil", "interesses": ["volei","voleibol","volleyball","basquete"] }
{"create": {}}
{"nome": "Abner Alves de Oliveira", "cidade": "Altinopolis", "formação": "Letras", "estado": "SP", "país": "Brasil", "interesses": ["artes","pintura","teatro"] }

Nota: É necessário uma quebra de linha após o último documento.