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?

questionAnswers(2)

yourAnswerToTheQuestion