A conclusão do Elasticsearch sugere a pesquisa com entradas de várias palavras
Usando o sugeridor de conclusão do Elasticsearch, tenho problemas para retornar sugestões de entrada com várias palavras correspondentes a uma consulta de uma palavra.
Estrutura de exemplo:
PUT /test_index/
{
"mappings": {
"item": {
"properties": {
"test_suggest": {
"type": "completion",
"index_analyzer": "whitespace",
"search_analyzer": "whitespace",
"payloads": false
}
}
}
}
}
PUT /test_index/item/1
{
"test_suggest": {
"input": [
"cat dog",
"elephant"
]
}
}
Consulta de trabalho:
POST /test_index/_suggest
{
"test_suggest":{
"text":"cat",
"completion": {
"field" : "test_suggest"
}
}
}
com resultado
{
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"test_suggest": [
{
"text": "cat",
"offset": 0,
"length": 3,
"options": [
{
"text": "cat dog",
"score": 1
}
]
}
]
}
Falha na consulta:
POST /test_index/_suggest
{
"test_suggest":{
"text":"dog",
"completion": {
"field" : "test_suggest"
}
}
}
com resultado
{
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"test_suggest": [
{
"text": "dog",
"offset": 0,
"length": 3,
"options": []
}
]
}
Eu esperaria o mesmo resultado que a consulta de trabalho, correspondendo a 'cat dog'. Alguma sugestão de qual é o problema e como fazer a consulta com falha funcionar? Eu obtenho os mesmos resultados ao usar o analisador padrão em vez do analisador de espaço em branco. Eu gostaria de usar várias palavras por string de entrada, como mostrado no exemplo acima.