Búsqueda de texto completo

Crear autocompletar o typeAhead mediante la búsqueda de texto completo

¿Qué es Autocompletar y Type Ahead?

Autocompletar como wikipedia dice

"Autocompletar, o completado de palabras, es una función en la que una aplicación predice el resto de una palabra que un usuario está escribiendo"

También se conoce como "Sugerencias", "Escriba antes" o "Busque mientras escribe". Ayuda a navegar o a guiar al usuario ofreciéndole posibles opciones y alternativas al texto que está escribiendo. Además, reduce la cantidad de caracteres que el usuario tiene que escribir para obtener los resultados finales de la búsqueda, mejorando así la experiencia de búsqueda de los usuarios.

Vamos a explorar un par de enfoques funcionales sobre cómo implementar autocompletar la función de autocompletar utilizando Couchbase FTS.

 

Utilizando el enfoque Edge NGram.

Este enfoque implica el uso de distintos analizadores de índices y tiempos de consulta.

Paso 1 - es tener la definición correcta del índice FTS para los campos que deben autocompletarse. Por lo tanto, durante la indexación, los campos que se desea autocompletar deben analizarse con un analizador personalizado que utilice la función filtro de tokens edge-ngram. También puede encadenarse con hacia_abajo si le preocupa la distinción entre mayúsculas y minúsculas.  tienda - para el campo autocompletar en la definición del índice para preservar el contenido del campo intacto dentro del índice FTS, de modo que este valor de campo almacenado se obtenga explícitamente durante la fase de consulta para realizar la autocompletación real o las sugerencias para el usuario.

¿Cómo funciona un filtro de tokens edge ngram?

Un tokenizador de ngramas de aristas convertirá un texto autocompletado en subtokens de una longitud mínima y máxima determinadas. Por ejemplo, un tokenizador de ngramas de aristas de longitud mínima 2 y máxima 6 tokenizaría el texto "parque jurásico"como a continuación.

ju, jur, jura, juras, jurass, pa, par, park. 

La idea aquí es que estos textos tokenizados del campo indexado sirvan como futuras entradas parciales de texto potenciales del usuario en la interfaz de usuario.

 

 

Paso 2 - Más tarde, cuando el usuario final empieza a escribir en el cuadro de texto de la interfaz de usuario, la aplicación cliente puede lanzar consultas de búsqueda en segundo plano con el texto parcial disponible en el cuadro de texto. Los clientes deben utilizar específicamente la función consulta de coincidencia ya que cuenta con disposiciones que lo prevén explícitamente,

  • analizador que se utilizará para el texto de búsqueda.

    Debería utilizar un analizador simple para la consulta de coincidencia, ya que así evitaría cualquier división innecesaria del texto durante la fase de búsqueda.

  • que hay que aplicar.

  También puede mencionar el factor de confusión si el cliente está interesado en obtener sugerencias de autocompletar con confusión aplicada.

estas opciones ayudan a controlar la función de autocompletar.

Junto con la consulta de coincidencia, el cliente debe solicitar el contenido real del campo autocompletado utilizando Campos  en la solicitud de búsqueda y este valor se utilizará como texto autocompletado o tipo de avance para el usuario.

 

Por ejemplo, una búsqueda de coincidencias para los textos parciales como "jur" o "pa" coincidirá con todos los títulos siguientes.

Parque Jurásico 

Parque Jurásico III

El mundo perdido: Parque Jurásico

 

Orden/rango de los resultados –  Por defecto tf-idf se aplican a los n-gramas que se indexan.  El orden específico de las sugerencias es posible aplicando cualquier ordenación personalizada específica del cliente/aplicación a los valores de campo recuperados en el lado del cliente.

Puede consultar el ejemplo de autocompletado aplicación de arranque aquí - 

Enfoque basado en prefijos

Este enfoque implica el uso de los mismos analizadores de índices y tiempos de consulta.

Paso 1Durante la indexación, los campos previstos para autocompletar deben analizarse con un analizador de palabras clave. Con el analizador de palabras clave, el valor de este campo se almacenará como una palabra clave, de modo que todo el valor se tratará como un único token con todos los términos y espacios conservados. 

Paso2- Posteriormente, durante el tiempo de consulta, este enfoque consiste en intentar consultas de prefijo contra el campo deseado en los documentos. Al igual que en el primer enfoque, el cliente necesita explícitamente solicitud del contenido real del campo autocompletado mediante Campos  en la solicitud de búsqueda y este valor se utilizará como texto autocompletado para el usuario.

Este enfoque tiene la restricción de que la coincidencia se limita estrictamente al inicio/prefijo del valor del campo.

 Por ejemplo, en el caso de uso mencionado anteriormente (con texto parcial como "Jur"), con el enfoque basado en prefijos

"Parque Jurásico"

"Parque Jurásico III"

aparecerá en los resultados, pero "El mundo perdido: Jurassic Park" no aparecerá porque su prefijo ("The Lost World:") no empieza por "Jur".

Comparte este artículo
Recibe actualizaciones del blog de Couchbase en tu bandeja de entrada
Este campo es obligatorio.

Autor

Publicado por Sreekanth Sivasankaran

Sreekanth Sivasankaran es Ingeniero Principal/Gerente Superior de Ingeniería en Couchbase R&D. Dirige el diseño y desarrollo de la funcionalidad de búsqueda distribuida y de alto rendimiento. Cuenta con más de 17 años de experiencia en el desarrollo de productos en diversos ámbitos como las telecomunicaciones, los teléfonos móviles, el software empresarial, las tecnologías de big data y los sistemas distribuidos.

Deja un comentario

¿Listo para empezar con Couchbase Capella?

Empezar a construir

Consulte nuestro portal para desarrolladores para explorar NoSQL, buscar recursos y empezar con tutoriales.

Utilizar Capella gratis

Ponte manos a la obra con Couchbase en unos pocos clics. Capella DBaaS es la forma más fácil y rápida de empezar.

Póngase en contacto

¿Quieres saber más sobre las ofertas de Couchbase? Permítanos ayudarle.