doutorevil 1 Denunciar post Postado Março 3, 2015 Eu estou com uma pesquisa em ElasticSearch que verifica o nível do índice e o sub nível de salões e seus serviços, até este ponto é ok, mas o que eu recebo no meu sub nível é uma grande quantidade de serviços inúteis e fora de ordem . Quanto à ordem que deve ser de acordo com o digitado pelo usuário, da mesma forma que o nome dos salões. este é o meu mapeamento: { "saloes": { "properties": { "id_salao": { "type": "integer" }, "salao": { "type": "string", "analyzer": "brazilian" }, "locations": { "type": "geo_point" }, "servicos": { "type": "nested", "properties": { "id_servico": { "type": "integer", "index": "not_analyzed" }, "servico": { "type": "string", "analyzer": "brazilian" }, "servico_es": { "type": "string", "index": "not_analyzed" }, "descricao_servico": { "type": "string", "analyzer": "brazilian" }, "categoria": { "type": "string", "analyzer": "brazilian" } } } } } } E esta é a minha consulta, nota que tentei usar "nested_filter" para tentar ordenar os serviços retornados em relevância para "Maquiagem", mas nada acontece com a ordem de serviços, no máximo os salões sofrem algum efeito: { "from": 0, "size": 20, "query": { "filtered": { "query": { "bool": { "should": [ { "constant_score": { "filter": { "and": [ { "query": { "multi_match": { "analyzer": "brazilian", "query": "Maquiagem", "fields": [ "salao", "descricao" ] } } } ] } } }, { "constant_score": { "filter": { "and": [ { "query": { "nested": { "path": "servicos", "query": { "multi_match": { "analyzer": "brazilian", "query": "Maquiagem", "fields": [ "servicos.servico", "servicos.descricao_servico" ] } } } } } ] } } } ] } }, "filter": { "geo_distance": { "distance": "50km", "saloes.locations": "-23.5505199,-46.63330939999997" } } } }, "sort": { "estrelas": "desc", "servicos.servico": { "order": "desc", "nested_path": "servicos", "nested_filter": { "term": { "servicos.servico_es": "Maquiagem" } } } } } Eu preciso criar o seguinte padrão: - Maior relevância salão: - - serviço de maior relevância. - - outros serviços - - outros serviços - Maior relevância salão: - - serviço de maior relevância. - - outros serviços - - outros serviços meu problema é aqui: "sort": { "estrelas": "desc", "servicos.servico": { "order": "desc", "nested_path": "servicos", "nested_filter": { "term": { "servicos.servico_es": "Maquiagem" } } } } Compartilhar este post Link para o post Compartilhar em outros sites