Olá Vinicius,
Se você olhar bem, no primeiro exemplo sobre analyzers (veja: https://cursos.alura.com.br/course/elasticsearch/section/5/task/4) eu usei uma frase. Não é um substantivo composto, porém é uma frase. Eu imaginei que para o Elasticsearch não faz diferença (eu procurei na internet para ver se tinha algum caso especial e não achei nada). Logo, você pode admitir que será tratado como uma frase. Eu analisei o exemplo que você usou utilizando o analyzer em português e o resultado foi:
{
"tokens" : [ {
"token" : "casa",
"start_offset" : 0,
"end_offset" : 5,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "raca",
"start_offset" : 9,
"end_offset" : 14,
"type" : "<ALPHANUM>",
"position" : 3
} ]
}
Para pé de moleque o resultado é:
{
"tokens" : [ {
"token" : "pé",
"start_offset" : 0,
"end_offset" : 2,
"type" : "<ALPHANUM>",
"position" : 1
}, {
"token" : "molequ",
"start_offset" : 6,
"end_offset" : 13,
"type" : "<ALPHANUM>",
"position" : 3
} ]
}
Caso você queira um resultado diferente, pode usar sinônimos ou mesmo tentar escrever seu analyzer.
Se você utilizar o AND, vai forçar todos os termos estarem presentes.
Sobre "Senti falta de um tópico relacionado a suggest no elasticsearch.". Este seria um assunto para ser abordado em um capítulo único, porém o curso já estava grande para para um curso introdutório. Eu optei por deixar um para saber mais sobre Fuzzy (https://cursos.alura.com.br/course/elasticsearch/section/6/task/7). Contudo, sua sugestão é boa e vai ser considerada para a ementa de um eventual outro curso de Elasticsearch.