Exemplo de analyzer sinônimo

From Basef
Jump to: navigation, search

Criando o índice:

PUT /catalogo_v3
{
  "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": {
    "pessoas": {
      "_all": {
        "type": "string",
        "index": "analyzed",
        "analyzer": "portuguese"
      },
      "properties": {
        "cidade": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "estado": {
          "type": "string"
        },
        "formação": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "interesses": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese",
          "search_analyzer": "sinonimos"
        },
        "nome": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "país": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        }
      }
    }
  }
}
PUT /catalogo_v3
{
  "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": {
    "pessoas": {
      "_all": {
        "type": "string",
        "index": "analyzed",
        "analyzer": "portuguese"
      },
      "properties": {
        "cidade": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "estado": {
          "type": "string"
        },
        "formação": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "interesses": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese",
          "search_analyzer": "sinonimos"
        },
        "nome": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        },
        "país": {
          "type": "string",
          "index": "analyzed",
          "analyzer": "portuguese"
        }
      }
    }
  }
}

Cadastrando dados:

POST /catalogo_v3/pessoas/1
{
    "nome": "João Silva",
    "interesses": ["futebol", "música", "literatura"],
    "cidade": "São Paulo",
    "formação": "Letras",
    "estado": "SP",
    "país": "Brasil"
}
 
POST /catalogo_v3/pessoas/2
{
    "nome": "Maria Silva",
    "interesses": ["pintura", "literatura", "teatro"],
    "cidade": "Diamantina",
    "formação": "Artes Plásticas",
    "estado": "MG",
    "país": "Brasil"
}
 
POST /catalogo_v3/pessoas/3
{
    "nome": "Richard Edward",
    "interesses": ["matemática", "física", "música"],
    "cidade": "Boston",
    "formação": "Física",
    "estado": "MA",
    "país": "Estados Unidos"
}
 
POST /catalogo_v3/pessoas/4
{
    "nome": "Patrick von Steppat",
    "interesses": ["computação", "culinária", "cinema"],
    "cidade": "Rio de Janeiro",
    "formação": "Gastronomia",
    "estado": "RJ",
    "país": "Brasil"
}
 
POST /catalogo_v3/pessoas/5
{
  "nome": "Paulo Eduardo de Azevedo Silveira",
  "interesses": ["computação", "literatura"],
  "cidade": "São Paulo",
  "formação": "Computação",
  "estado": "SP",
  "país": "Brasil"
}
 
POST /catalogo_v3/pessoas/6
{
  "nome": "Michael Jordan",
  "interesses": ["basquete"],
  "cidade": "Chicago",
  "formação": "Artes",
  "estado": "IL",
  "país": "Estados Unidos"
}
 
POST /catalogo_v3/pessoas/7
{
  "nome": "Marcelo Negrão",
  "interesses": ["volei"],
  "cidade": "São Paulo",
  "formação": "Adminstração",
  "estado": "SP",
  "país": "Brasil"
}

Buscando:

GET /catalogo_v3/pessoas/_search?q=interesses:esportes