Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Búsquedas nxlquery via querymodel RESTlet API en Nuxeo

Cesar Capillas
Cesar Capillas

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.

https://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 

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

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *