Una consulta de coincidencia de frase es similar a una consulta de coincidencia, pero evalúa las posiciones de los tokens. Una fila cumple con las condiciones de la consulta únicamente si el orden y las posiciones de los tokens en la fila coinciden con el orden y las posiciones de los tokens que contiene la clave de búsqueda. Si el método de tokenización del campo que desea consultar es la tokenización difusa, la consulta de coincidencia de frase se ejecuta con menor latencia que una consulta con comodines.
Escenarios
Utilice la consulta de coincidencia de frase para buscar datos que contengan una frase específica cuyas palabras estén organizadas en un orden determinado. Puede combinar esta consulta con la tokenización para ejecutar búsquedas de texto completo en escenarios específicos, como análisis de big data, búsqueda de contenido y recomendaciones personalizadas. Por ejemplo, puede consultar oraciones que contengan una frase particular dentro de una búsqueda de contenido o localizar mensajes organizados en una secuencia específica en los registros de chat.
Funciones
La consulta de coincidencia de frase utiliza coincidencias aproximadas para consultar datos y evalúa las posiciones de los tokens. Por ejemplo, suponga que el valor de una columna de tipo TEXT en una fila es "Hangzhou West Lake Scenic Area" y la clave de búsqueda que usted especifica es "Hangzhou Scenic Area". Tablestore devuelve la fila cuando usa una consulta de coincidencia. Sin embargo, al usar una consulta de coincidencia de frase, Tablestore no devuelve la fila. La distancia entre "Hangzhou" y "Scenic Area" en la clave de búsqueda es 0, pero en la columna de esta fila la distancia es 2, ya que existen las palabras "West" y "Lake" entre ambos términos.
Cuando utilice este tipo de consulta, debe especificar el nombre del campo que desea consultar y la clave de búsqueda. Una fila cumple con las condiciones de la consulta únicamente si el orden y las posiciones de los tokens en la fila coinciden con el orden y las posiciones de los tokens contenidos en la clave de búsqueda.
Durante la ejecución de una consulta de coincidencia de frase, puede especificar el peso que desea asignar al campo consultado para calcular la puntuación de relevancia de la clave de búsqueda basada en BM25. También puede definir las columnas que desea devolver, indicar si se debe devolver el número total de filas que cumplen con las condiciones de la consulta y establecer el método utilizado para ordenar las filas devueltas.
Operación de API
Para ejecutar una consulta de coincidencia de frase, llame a la operación Search o ParallelScan y establezca el tipo de consulta en MatchPhraseQuery.
Parámetros
Parámetro | Descripción |
fieldName | El nombre del campo que desea hacer coincidir. Puede ejecutar consultas de coincidencia de frase en campos de tipo TEXT. |
text | La clave de búsqueda utilizada para hacer coincidir el valor del campo cuando ejecuta una consulta de coincidencia de frase. Si el campo que desea hacer coincidir es de tipo TEXT, la clave de búsqueda se divide en varios tokens según el tipo de analizador que especificó al crear el índice de búsqueda. Si no especificó el tipo de analizador durante la creación del índice de búsqueda, se aplica la tokenización de palabra única. Para obtener más información, consulte Tokenization. Por ejemplo, si ejecuta una consulta de coincidencia de frase con la expresión "this is", se devuelven resultados como "..., this is tablestore" y "this is a table". No se devuelven expresiones como "this table is ..." ni "is this a table". |
query | El tipo de consulta. Establezca el parámetro query en matchPhraseQuery. |
offset | La posición desde la cual inicia la consulta actual. |
limit | El número máximo de filas que desea que devuelva la consulta actual. Si solo desea consultar el número de filas que cumplen con las condiciones sin obtener datos específicos, establezca el parámetro limit en 0. |
getTotalCount | Especifica si se debe devolver el número total de filas que cumplen con las condiciones de la consulta. El valor predeterminado de este parámetro es false, lo que indica que no se devuelve dicho total. Si establece este parámetro en true, el rendimiento de la consulta disminuye. |
weight | El peso que desea asignar al campo consultado para calcular la puntuación de relevancia de la clave de búsqueda basada en BM25. Este parámetro se utiliza en escenarios de búsqueda de texto completo. Si asigna un peso mayor al campo consultado, la puntuación de relevancia BM25 de dicho campo será más alta. El valor de este parámetro es un número de punto flotante positivo. Este parámetro no afecta el número de filas devueltas, pero sí influye en las puntuaciones de relevancia BM25 de los resultados de la consulta. |
tableName | El nombre de la tabla de datos. |
indexName | El nombre del índice de búsqueda. |
columnsToGet | Especifica si se deben devolver todas las columnas de cada fila que cumpla con las condiciones de la consulta. Puede configurar los campos returnAll y columns para el parámetro columnsToGet. El valor predeterminado del campo returnAll es false, lo que indica que no se devuelven todas las columnas. En este caso, utilice el campo columns para especificar las columnas que desea devolver. Si no especifica dichas columnas, solo se devuelven las columnas de clave primaria. Si establece el campo returnAll en true, se devuelven todas las columnas. |
Notas
Search Index proporciona únicamente una puntuación de relevancia BM25 básica y no admite modelos de relevancia personalizados.
Métodos
Puede utilizar la consola de Tablestore, Tablestore CLI o los SDK de Tablestore para ejecutar una consulta de coincidencia de frase.
Antes de ejecutar la consulta, asegúrese de cumplir con los siguientes requisitos previos:
-
Utilice una cuenta de Alibaba Cloud o un usuario de RAM con los permisos obligatorios para las operaciones de Table Store. Para otorgar permisos a un usuario de RAM, consulte Grant permissions to a RAM user by using a RAM policy.
Si utiliza un SDK o una herramienta de línea de comandos, create an AccessKey para su cuenta de Alibaba Cloud o usuario de RAM en caso de que no cuente con uno.
Debe haber created a data table.
Se debe haber creado un Search Index para la tabla de datos.
Si utiliza un SDK, initialize the Tablestore Client.
Si utiliza la herramienta de línea de comandos, descargue e inicie la herramienta. Después, configure la conexión a su instancia y seleccione la tabla de destino. Para obtener más información, consulte Download the command-line tool, Start the tool and configure connection information y Data table operations.
Facturación
Consultar datos mediante un Search Index consume capacidad de procesamiento de lectura. Para obtener más información, consulte Search Index metering and billing.
Preguntas frecuentes
Referencias
Search Index admite diversos tipos de consulta para buscar datos de forma multidimensional, entre ellos: term query, terms query, match all query, match query, phrase match query, range query, prefix query, suffix query, wildcard query, token-based wildcard query, boolean query, geo query, nested query, vector search, y exists query.
Al consultar datos, puede sort and paginate el conjunto de resultados o ejecutar collapsing (deduplication).
Para analizar datos, como buscar el valor máximo o mínimo, calcular una suma o contar filas, utilice las funciones statistical aggregation o SQL query.
Si necesita exportar datos rápidamente sin importar el orden del conjunto de resultados, utilice la función Parallel Scan.