Expresiones de consulta estructuradasStructured Query Expression

Una expresión de consulta estructurada especifica un conjunto de operaciones para evaluar en el índice de datos.A structured query expression specifies a set of operations to evaluate against the data index. Se compone de expresiones de consulta de atributos y funciones de nivel superior.It consists of attribute query expressions and higher-level functions. Use el método evaluate para procesar los objetos que coinciden con la expresión.Use the evaluate method to compute the objects matching the expression. El siguiente es un ejemplo del dominio de publicaciones académicas que devuelve las publicaciones creadas por Jaime Teevan desde el año 2013.The following is an example from the academic publications domain that returns publications authored by Jaime Teevan since the year 2013.

And(Composite(Author.Name=='jaime teevan'),Y>=2013)

Las expresiones de consulta estructuradas se pueden obtener a partir de solicitudes interpret, en las que la salida semántica de cada interpretación es una expresión de consulta estructurada que devuelve objetos de índice que coinciden con la consulta de entrada en lenguaje natural.Structured query expressions may be obtained from interpret requests, where the semantic output of each interpretation is a structured query expression that returns the index objects matching the input natural language query. Como alternativa, también se pueden crear manualmente mediante la sintaxis descrita en esta sección.Alternatively, they may be manually authored using the syntax described in this section.

Expresión de consulta de atributoAttribute Query Expression

Una expresión de consulta de atributo identifica un conjunto de objetos basados en la coincidencia con un atributo determinado.An attribute query expression identifies a set of objects based on matching against a specific attribute. Se admiten diferentes operaciones de establecimiento de coincidencias dependiendo del tipo de atributo y de la operación indexada que se especificó en el esquema:Different matching operations are supported depending on the attribute type and indexed operation specified in the schema:

TypeType OperaciónOperation EjemplosExamples
CadenaString equalsequals Title='latent semantic analysis' (canonical + synonyms)Title='latent semantic analysis' (canonical + synonyms)
CadenaString equalsequals Author.Name=='susan t dumais' (canonical only)Author.Name=='susan t dumais' (canonical only)
CadenaString starts_withstarts_with Title='latent s'...Title='latent s'...
Int32/Int64/DoubleInt32/Int64/Double equalsequals Year=2000Year=2000
Int32/Int64/DoubleInt32/Int64/Double starts_withstarts_with Year='20'... (any decimal value starting with "20")Year='20'... (any decimal value starting with "20")
Int32/Int64/DoubleInt32/Int64/Double is_betweenis_between Year<2000Year<2000
Year<=2000Year<=2000
Year>2000Year>2000
Year>=2000Year>=2000
Year=[2010,2012) (includes only left boundary value: 2010, 2011)Year=[2010,2012) (includes only left boundary value: 2010, 2011)
Year=[2000,2012] (includes both boundary values: 2010, 2011, 2012)Year=[2000,2012] (includes both boundary values: 2010, 2011, 2012)
DateDate equalsequals BirthDate='1984-05-14'BirthDate='1984-05-14'
DateDate is_betweenis_between BirthDate<='2008/03/14'BirthDate<='2008/03/14'
PublishDate=['2000-01-01','2009-12-31']PublishDate=['2000-01-01','2009-12-31']
GuidGuid equalsequals Id='602DD052-CC47-4B23-A16A-26B52D30C05B'Id='602DD052-CC47-4B23-A16A-26B52D30C05B'

Por ejemplo, la expresión "Title='latent s'..." busca coincidencias con todas las publicaciones académicas cuyo título empieza por la cadena "latent s".For example, the expression "Title='latent s'..." matches all academic publications whose title starts with the string "latent s". Para evaluar esta expresión, el atributo Title debe especificar la operación "starts_with" en el esquema que se usó para compilar el índice.In order to evaluate this expression, the attribute Title must specify the "starts_with" operation in the schema used to build the index.

Para los atributos con sinónimos asociados, una expresión de consulta puede especificar los objetos cuyo valor canónico coincide con una cadena determinada mediante el operador "==", o los objetos en los que cualquiera de sus valores canónicos o de sinónimos coinciden mediante el operador "=".For attributes with associated synonyms, a query expression may specify objects whose canonical value matches a given string using the "==" operator, or objects where any of its canonical/synonym values match using the "=" operator. Ambos requieren que se especifique el operador "equals" en la definición de atributo.Both require the "equals" operator to be specified in the attribute definition.

FunctionsFunctions

Hay un conjunto integrado de funciones que permiten la construcción de expresiones de consulta más sofisticadas a partir de consultas de atributos básicas.There is a built-in set of functions allowing the construction of more sophisticated query expressions from basic attribute queries.

Función AndAnd Function

And(expr1, expr2)

Devuelve la intersección de las dos expresiones de consulta de entrada.Returns the intersection of the two input query expressions.

El ejemplo siguiente devuelve publicaciones académicas publicadas en el año 2000 sobre recuperación de información:The following example returns academic publications published in the year 2000 about information retrieval:

And(Year=2000, Keyword=='information retrieval')

Función OrOr Function

Or(expr1, expr2)

Devuelve la unión de las dos expresiones de consulta de entrada.Returns the union of the two input query expressions.

El ejemplo siguiente devuelve publicaciones académicas publicadas en el año 2000 sobre recuperación de información o modelado de usuario:The following example returns academic publications published in the year 2000 about information retrieval or user modeling:

And(Year=2000, Or(Keyword='information retrieval', Keyword='user modeling'))

Función CompositeComposite Function

Composite(expr)

Devuelve una expresión que encapsula una expresión interna compuesta de consultas en atributos secundarios de un atributo común compuesto.Returns an expression that encapsulates an inner expression composed of queries against sub-attributes of a common composite attribute. La encapsulación requiere que el atributo compuesto de cualquier objeto de datos coincidente disponga al menos de un valor que satisface individualmente la expresión interna.The encapsulation requires the composite attribute of any matching data object to have at least one value that individually satisfies the inner expression. Tenga en cuenta que una expresión de consulta sobre atributos secundarios de un atributo compuesto tiene que estar encapsulada mediante la función Composite() antes de poderse combinar con otras expresiones de consulta.Note that a query expression on sub-attributes of a composite attribute has to be encapsulated using the Composite() function before it can be combined with other query expressions.

Por ejemplo, la siguiente expresión devuelve publicaciones académicas de "harry shum" durante su época en "microsoft":For example, the following expression returns academic publications by "harry shum" while he was at "microsoft":

Composite(And(Author.Name="harry shum", 
              Author.Affiliation="microsoft"))

Por otra parte, la siguiente expresión devuelve publicaciones académicas en las que uno de los autores es "harry shum" y una de las afiliaciones es "microsoft":On the other hand, the following expression returns academic publications where one of the authors is "harry shum" and one of the affiliations is "microsoft":

And(Composite(Author.Name="harry shum"), 
    Composite(Author.Affiliation="microsoft"))