Búsqueda de texto completo - Consejos de indexación
Comprender las opciones de indexación de la Búsqueda de Texto Completo (FTS) es esencial para construir la índice derecho para el trabajo en cuestión. El sitio índice derecho se refiere aquí a un índice invertido lo suficientemente pobre y rico como para servir a esos diversos tipos de solicitudes de búsqueda de los clientes.
Algunos buenas prácticas de indexación que hay que tener en cuenta al crear un índice FTS son las siguientes.
-
Evite por defecto asignación de tipos en la producción
Cuando un usuario crea un índice FTS desde la consola web de Couchbase, la opción predefinida de asignación de tipos elegida para un índice es por defecto. Se trata de un tipo especial de aplicación cartográfica.d a cada documento cuyo tipo o bien no coincide con una correspondencia de tipos especificada por el usuario o no tiene un atributo de tipo reconocido.
Por lo tanto, si se deja activada la asignación por defecto, todos los documentos con todos los campos se incluirán en el índice. Esto ocurrirá independientemente de que el usuario especifique o no activamente las correspondencias de tipos.
En por defecto El mapeo dinámico produce índices más grandes y es potencialmente inadecuado para despliegues de producción.
Desactive la asignación de tipos predeterminada, como se muestra a continuación, para garantizar que sólo se incluyan en el índice las asignaciones de tipos especificadas por el usuario.
-
Especifique el derecho tipo asignaciones
Identifique los campos en los que necesita que se puedan realizar búsquedas en los documentos y defina una correspondencia de tipos personalizada que mencione los campos que se van a indexar. Puede identificar e indexar sólo un subconjunto de sus tipos de documentos especificando un único / conjunto de mapeos de tipos que le interesen.
Más información: https://docs.couchbase.com/server/6.0/fts/fts-creating-indexes.html#specifying-type-identifiers
-
Elija el campo óptimo opciones de indexación
Al especificar un campo para la indexación, hay que tener en cuenta algunas opciones de indexación importantes.
- índice: Cuando está marcada, el campo está indexado; cuando no está marcada, el campo no está indexado. Puede utilizarse, por tanto, para eliminar explícitamente del índice un campo ya definido.
- tienda: Cuando está marcada, el contenido del campo se incluye en el conjunto de valores devueltos por una búsqueda; cuando no está marcada, el contenido del campo no se incluye. Tenga en cuenta que la inclusión del contenido del campo permite específicamente destacando de los resultados, para que las expresiones coincidentes puedan verse fácilmente. Sin embargo, también da lugar a índices más grandes y tiempos de procesamiento más largos. Por lo tanto, desactive esta opción si no está interesado en funciones como el resaltado de los resultados de búsqueda.
- incluir en _todos los campos: Si está marcada, el campo se incluye en la definición de _all, que es el campo especificado por defecto en el panel Avanzado. Si no está marcada, el campo no se incluye. La inclusión significa que cuando las cadenas _query se utilizan para especificar búsquedas, el texto del campo actual se puede buscar sin que el nombre del campo requiera un prefijo (por lo tanto, una búsqueda en descripción:moderno se puede conseguir simplemente especificando moderno). Al activar esta opción se obtienen índices más grandes, así que desactívela si desea utilizar ámbito de aplicación solicitudes de búsqueda.
- incluir vectores de términos: Si está marcada, se incluyen los vectores de términos. Sin marcar, no se incluyen. Los vectores de términos son las ubicaciones de los términos en un campo concreto. Ciertos tipos de funciones (como el resaltado y la búsqueda de frases) requieren vectores de términos. La inclusión de vectores de términos da lugar a índices más grandes y, en consecuencia, a tiempos de creación de índices más lentos. Por lo tanto, desactive esta opción si no le interesan las búsquedas de frases o el resaltado en los resultados de búsqueda.
-
Precaución con los campos numéricos.
A menudo, los documentos tienen todo tipo de campos de identificación y los usuarios tienden a indexarlos como número tipos. Pero la indexación como número sólo se recomienda cuando se tiene un caso de uso numérico real, como las búsquedas de rango,
eg: "buscar todos los documentos de producto que traten sobre 'iphone' y cuyo precio < 1000".
Muchos casos de uso no suelen tener búsquedas de rango en dichos campos ID, sino que sólo realizan búsquedas de igualdad de palabras clave exactas en los campos ID, por lo que se recomienda utilizar texto tipo y palabra clave* analizador en lugar de número para este tipo de situaciones de campo de identificación.
En la actualidad, FTS almacena internamente los números en un formato menos optimizado para el espacio y el enfoque anterior puede ayudarle a reducir aún más el tamaño del índice. Y los índices más pequeños deberían mejorar la ocupación de la memoria RAM.
Estamos añadiendo más posibilidades de configuración al creación de índices lo que permite un mayor ajuste a nivel de almacenamiento.
Parte 2...
Analizador de palabras clave* - Crea un único token que representa toda la entrada y omite cualquier modificación o depuración del texto.
> Precaución con los campos numéricos
¿Es posible utilizar el tipo de texto y el analizador de palabras clave en campos numéricos o hay que convertir el campo en cadena?
Para evitarlo, el campo debe convertirse a un tipo de cadena. Pero también estamos evaluando otras soluciones nativas.