Olá, olha eu de novo... acho que minha pesquisa não está funcionando como esperado... tanto faz eu pesquisar por 'rio janeiro' ou 'janeiro rio' que o resultado dá o mesmo (33), até aqui tudo bem. O problema é quando pesquiso por 'rio de janeiro', por exemplo, ai o resultado já cai pra 7. Eu fiz o teste com o _analyze que escolhi e o 'de' não gera nenhum token. Alguém sabe me dizer o que pode ser? Abaixo as configurações que utilizei:
Mapping (reduzido, mas as 'variáveis' que não utilizo coloco como index : no):
{
"settings": {
"index": {
"number_of_shards": 3,
"number_of_replicas": 0
},
"analysis": {
"filter": {
"brazilian_stop": {
"type": "stop",
"stopwords": "_brazilian_"
},
"brazilian_stemmer": {
"type": "stemmer",
"language": "brazilian"
},
"filtro_de_sinonimos": {
"type": "synonym",
"synonyms": [
"r,rua",
"av,aven"
]
}
},
"analyzer": {
"sinonimos": {
"tokenizer": "standard",
"filter": [
"lowercase",
"brazilian_stop",
"brazilian_stemmer",
"filtro_de_sinonimos"
]
}
}
}
},
"mappings": {
"busca": {
"_all": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"properties": {
"address_1": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"address_2": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"address_id": {
"type": "long",
"index": "no"
},
"capa": {
"type": "string",
"index": "no"
},
"city": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"code": {
"type": "string",
"index": "no"
},
"mypage": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"nome": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"nome_fantasia": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
"number": {
"type": "long",
"index": "no"
},
"razao_social": {
"type": "string",
"index": "analyzed",
"analyzer": "brazilian",
"search_analyzer": "sinonimos"
},
}
}
}
}
Query:
{
"from": 0,
"size": 20,
"sort": [
{
"_geo_distance": {
"location": {
"lat": -23.5646027,
"lon": -46.6557225
},
"order": "asc",
"unit": "m",
"distance_type": "arc"
}
}
],
"query": {
"query_string": {
"fields": [
"categoria",
"city",
"address_1",
"address_2",
"razao_social",
"nome_fantasia"
],
"query": "rio de janeiro",
"default_operator": "AND"
}
},
"post_filter": {
"term": {
"filter": 1
}
}
}
O que estou fazendo de errado? O que tem de errado nessas configurações? Como ficaria uma configuração ideal? Obrigado!