Habilitar la búsqueda de texto optimizada en los campos de tabla
Business Central incluye una característica de búsqueda de texto optimizada en los campos de la tabla, que utiliza la característica de búsqueda de texto completo en las bases de datos de SQL Server y Azure SQL Database. La búsqueda de texto optimizada permite a los usuarios y las aplicaciones ejecutar consultas de texto completo con datos basados en caracteres en tablas. En esta unidad se explica cómo habilitar la búsqueda de texto optimizada en los campos de tabla y cómo puede utilizarla para filtrar datos en AL.
En el cliente, la búsqueda de texto optimizada se utiliza en varias funcionalidades de búsqueda, como en la búsqueda de datos de toda la empresa y en listas que incluyen campos de búsqueda de texto optimizados, denominada búsqueda moderna. Consulte Buscar un registro en los datos de empresa y Búsqueda. Al habilitar la búsqueda de texto optimizada en los campos de las extensiones, puede optimizar considerablemente la búsqueda de datos en su código AL.
Para habilitar la búsqueda de texto optimizada en el campo, establezca la Propiedad OptimizeForTextSearch en verdadero. En el siguiente ejemplo se muestra cómo está habilitada la búsqueda de texto en el nivel de campo:
table 50100 Address
{
Caption = 'Sample table';
fields
{
field(1; Address; Text[50])
{
Caption = 'Address retrieved by Service';
OptimizeForTextSearch = true;
}
field(2; Locality; Text[30])
{
Caption = 'Locality retrieved by Service';
OptimizeForTextSearch = true;
}
field(3; "Town/City"; Text[30])
{
Caption = 'Town/City retrieved by Service';
OptimizeForTextSearch = true;
}
field(4; County; Text[30])
{
Caption = 'County retrieved by Service';
OptimizeForTextSearch = true;
}
field(5; IsValidated; Boolean)
{
Caption = 'Address validated yet?';
}
}
Puede utilizar la propiedad OptimizedForTextSearch en la tabla virtual Campo. También puede usar el método IsOptimizedForTextSearch() en variables de tipo FieldRef del tipo de datos FieldRef.
Para usar la búsqueda de texto optimizada en AL, puede agregar el operador && al establecer un filtro, tal y como se muestra en el siguiente ejemplo:
// Optimized text search without wildcard
Rec.SetFilter(Rec.Field, '&&' + SearchString);
También puede incluir comodines en la búsqueda de texto completo agregando el símbolo "*" a la cláusula de búsqueda, como se muestra en el siguiente ejemplo:
// Optimized text search with wildcard
Rec.SetFilter(Rec.Field, '&&' + SearchString + '*' );
La búsqueda de texto optimizada difiere de la búsqueda tradicional con caracteres comodín que usa el símbolo "*" de las siguientes maneras:
La búsqueda de texto optimizada no distingue nunca entre mayúsculas y minúsculas, donde la búsqueda con caracteres comodín distingue entre mayúsculas y minúsculas, a menos que la intercalación del conjunto de datos no distinga o el operador @ tenga un prefijo.
La búsqueda de texto optimizada no distingue acentos, donde la búsqueda con caracteres comodín distingue acentos, a menos que la intercalación del conjunto de datos no distinga o el operador @ tenga un prefijo.
La búsqueda de texto optimizada busca palabras dentro de los campos, donde el carácter comodín busca letras dentro de los campos. Eso significa que la búsqueda de texto completo puede encontrar palabras o prefijos de palabras dentro de un campo, pero la búsqueda con caracteres comodín puede encontrar subcadenas arbitrarias dentro de las palabras.