O que é Autocomplete vs. Type Ahead?
Autocompletar como o wikipedia diz
"O autocomplete, ou preenchimento de palavras, é um recurso no qual um aplicativo prevê o restante de uma palavra que o usuário está digitando"
Também é conhecido como Sugestões, Type Ahead ou Search as you Type. Isso ajuda a navegar ou a orientar um usuário, apresentando a ele conclusões e alternativas prováveis para o texto enquanto ele o digita. E reduz a quantidade de caracteres que o usuário precisa digitar para obter os resultados finais da pesquisa, melhorando assim a experiência de pesquisa dos usuários.
Vamos explorar algumas abordagens funcionais sobre como implementar o recurso de autocompletar usando o Couchbase FTS.
Usando a abordagem Edge NGram.
Essa abordagem envolve o uso de diferentes índices e analisadores de tempo de consulta.
Etapa 1 - é ter a definição correta do índice FTS para os campos que precisam ser autocompletados. Portanto, durante a indexação, os campos de preenchimento automático pretendidos devem ser analisados com um analisador personalizado que use o filtro de token de ngrama de borda. Ele também pode ser encadeado com to_lower
se estiver preocupado com a sensibilidade de maiúsculas e minúsculas. loja - deve ser ativada para o campo autocompletar na definição do índice para preservar o conteúdo do campo intacto no índice FTS, de modo que esse valor de campo armazenado seja buscado explicitamente durante a fase de consulta para executar o preenchimento automático real ou as sugestões para o usuário.
Como funciona um filtro de token de ngrama de borda?
Um tokenizador de ngrama de borda tokenizará um determinado valor de texto de autocompletar em sub-tokens de comprimento que variam de um determinado parâmetro de comprimento mínimo e máximo. Por exemplo, um tokenizador de ngrama de borda com comprimento mínimo de 2 e comprimento máximo de 6 tokenizaria o texto "parque jurássico" como abaixo.
ju, jur, jura, juras, jurass, pa, par, park.
A ideia aqui é que esses textos tokenizados do campo indexado serviriam como futuras entradas de texto parcial em potencial do usuário na interface do usuário.
Etapa 2 - Posteriormente, quando o usuário final realmente começar a digitar na caixa de texto da interface do usuário, o aplicativo cliente poderá acionar consultas de pesquisa em segundo plano com o texto parcial disponível na caixa de texto. Os clientes devem usar especificamente a função consulta de correspondência pois ele tem as disposições para fornecer explicitamente,
- analisador a ser usado para o texto de pesquisa.
Deve-se usar um analisador simples para a consulta de correspondência, pois isso deve evitar qualquer divisão desnecessária de texto durante a fase de pesquisa.
- imprecisão que precisa ser aplicada.
Também é possível mencionar o fator de imprecisão se o cliente estiver interessado em obter sugestões de preenchimento automático com imprecisão aplicada.
essas opções ajudam a controlar o recurso de conclusão automática.
Junto com a consulta de correspondência, o cliente deve solicitar o conteúdo real do campo preenchido automaticamente usando Campos
na solicitação de pesquisa e esse valor será usado como o texto preenchido automaticamente ou digitado antes do usuário.
Por exemplo, uma consulta de correspondência para os textos parciais como "jur" ou "pa" corresponderá a todos os títulos abaixo.
Parque Jurássico
Jurassic Park III
O Mundo Perdido: Jurassic Park
Ordem/classificação dos resultados – O padrão tf-idf são aplicáveis aqui para os n-gramas que estão sendo indexados. A ordem específica das sugestões é possível aplicando qualquer classificação personalizada específica do cliente/aplicativo nos valores de campo recuperados no lado do cliente.
Você pode conferir o exemplo de preenchimento automático aplicativo bootstrap aqui -
Abordagem baseada em prefixo
Essa abordagem envolve o uso do mesmo índice e analisadores de tempo de consulta.
Etapa 1 – Durante a indexação, os campos de preenchimento automático pretendidos devem ser analisados com um analisador de palavras-chave. Com o analisador de palavras-chave, o valor desse campo será armazenado como uma palavra-chave, de modo que todo o valor será tratado como um único token com todos os termos e espaços retidos.
Passo2- Posteriormente, durante o tempo de consulta, essa abordagem envolve tentar consultas de prefixo contra o campo desejado nos documentos. Semelhante à primeira abordagem, o cliente precisa explicitamente solicitação do conteúdo real do campo preenchido automaticamente usando Campos
na solicitação de pesquisa e esse valor será usado como o texto de preenchimento automático para o usuário.
Essa abordagem tem a restrição de que a correspondência é estritamente limitada ao início/prefixo do valor do campo.
Por exemplo, no caso de uso mencionado acima (com texto parcial como "Jur"), com a abordagem baseada em prefixo
"Jurassic Park"
"Jurassic Park III"
aparecerá nos resultados, mas "The Lost World: Jurassic Park" não aparecerá, pois seu prefixo ("The Lost World:") não começa com "Jur".