String de fala para o sugeridor de conclusão
deseja criar a funcionalidade de preenchimento automático de um site de comércio eletrônico usando o Completion Suggeste
Este é o meu índice:
PUT myIndex
{
"mappings": {
"_doc" : {
"properties" : {
"suggest" : {
"type" : "completion"
},
"title" : {
"type": "keyword"
},
"category" : {
"type": "keyword"
},
"description" : {
"type": "keyword"
}
}
}
}
}
Agora, ao fazer o upload do anúncio, quero que o campo de título seja usado para o preenchimento automático, então é assim que carrego um documento:
POST dummy/_doc
{
"title": "Blue asics running shoes",
"category": "sports",
"description": "Nice blue running shoes, size 44 eu",
"suggest": {
"input": "Blue Asics running shoes" // <-- use title
}
}
O problema é que, dessa maneira, a pesquisa elástica corresponde apenas à string do início ... ou seja, "Blu" encontrará resultado, mas "Asic" ou "Run" ou "Sho" não retornarão nada ...
Então, o que preciso fazer é tokenizar minha entrada assim:
POST dummy/_doc
{
"title": "Blue asics running shoes",
"category": "sports",
"description": "Nice blue running shoes, size 44 eu",
"suggest": {
"input": ["Blue", "Asics", "running", "shoes"] // <-- tokenized title
}
}
Isso funcionaria bem ... Mas como devo tokenizar meu campo? Eu sei que posso dividir a string em c #, mas existe alguma maneira de fazer isso no Elasticsearch / Nest?