Búsquedas nxlquery via querymodel RESTlet API en Nuxeo

Estoy bastante impresionado con el lenguaje de búsquedas de Nuxeo, el nxlquery, que te proporciona una sintaxis sql para las búsquedas muy pero que muy cómoda. Se pueden hacer desde la consola de búsqueda avanzada de Nuxeo o bien desde un pequeño script que invoque una URL expuesta en Nuxeo.

Una pequeña muestra de las consultas que se pueden hacer son las siguientes:

SELECT * FROM Document WHERE dc:title LIKE 'testfile%' ORDER BY dc:description
SELECT * FROM Document WHERE dc:title LIKE 'testfile%' AND ecm:path STARTSWITH '/'
SELECT * FROM Document WHERE dc:created >= DATE '2007-02-15'
SELECT * FROM Document WHERE ecm:primaryType IN ('Folder', 'Note', 'MyType')

y con acceso a todos los tipos de contenido y metadatos personalizados. En esta página del wiki de Nuxeo teneis algunas búsquedas posibles con nxlquery.

http://www.nuxeo.org/xwiki/bin/view/FAQ/NXQLReference

Además es posible exponer una consulta con el RESTLET de búsqueda de Nuxeo. Para ello en el archivo de configuración $JBOSS/server/default/deploy/nuxeo.ear/config/querymodel-contrib.xml

<?xml version="1.0"?>
<component name="org.nuxeo.project.sample.querymodels">
  <extension
    target="org.nuxeo.ecm.core.search.api.client.querymodel.QueryModelService"
    point="model">
    <queryModel name="CUSTOM_TYPE_ONDOMAIN_SEARCH">
      <pattern>
        SELECT * FROM Document WHERE ecm:PrimaryType = ? AND ecm:path STARTSWITH ?        
        AND ecm:isCheckedInVersion = 0 AND ecm:mixinType != 'HiddenInNavigation'
        AND ecm:currentLifeCycleState != 'deleted'
      </pattern>
      <sortable value="true" defaultSortColumn="dc:title" defaultSortAscending="true" />
      <max>100</max>
  </queryModel>
</extension>
</component>


Fijaros que la búsqueda definida va a buscar documentos de un tipo específico por debajo de un path, de modo que va a requerir dos parámetros QP1, y QP2. Reiniciamos el servidor y ponemos en el navegador o invocamos desde una aplicación:

http://nuxeo.zylk.net:8080/nuxeo/restAPI/execQueryModel/CUSTOM_TYPE_ONDOMAIN_SEARCH?QP1=acta&QP2=/defaultdomain/sections&format=XML&colums=dublincore.title,dublincore.description,mytype.myproperty,url

obteniendo un xml con la información de la búsqueda solicitada. De este modo, podemos consumir búsquedas sobre tipos de contenidos y metadatos personalizados en Nuxeo desde aplicaciones via REST y obtenerlas en formatos como xml,json,rss o atom. Con el parseo de la info correspondiente voy a acabar programando en fortran

http://doc.nuxeo.org/5.1/books/nuxeo-book/html/nuxeo-restlet-api.html
 

00

More Blog Entries

0 Comments