cancel
Showing results for 
Search instead for 
Did you mean: 

Problema en una query con CMIS en un modelo propio

fmelia
Champ in-the-making
Champ in-the-making
Hola a todos,

   tenemos un problema con una query CMIS contra Alfresco 4.0.e, con Lucene. Hasta ahora todo funcionaba bien, pero hemos definido un modelo propio para los documentos. El modelo es el siguiente:


<model xmlns="http://www.alfresco.org/model/dictionary/1.0" name="uji:customModel">

    <description>Custom Model</description>
    <author/>
    <version>1.0</version>
    <imports>
        <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
        <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
    </imports>

    <namespaces>
        <namespace uri="http://www.uji.es/model/content/1.0" prefix="uji"/>
    </namespaces>

    <types>
        <type name="uji:doc">
            <title>Url Node</title>
            <parent>cm:content</parent>
            <properties>
                <property name="uji:urlNode">
                    <type>d:text</type>
                </property>
            </properties>
            <associations/>
        </type>
    </types>
    <aspects/>
</model>


Con este modelo hemos cargado documentos sin ningún problema. En la propiedad uji:urlNode se han guardado los datos correctamente. Pero a la hora de hacer querys con CMIS usando esta propiedad, tenemos un problema.

Imaginemos que tenemos un documento con la propiedad uji:urlNode = 'noticias'

Pues bien, la siguiente select no devuelve nada:

SELECT * FROM uji:doc where uji:urlNode like '%noticias%'

Si cambiamos la palabra 'noticias' por 'noticia', tampoco. Si quitamos y ponemos '%' tampoco, pero con la siguiente select sí devuelve resultado:

SELECT * FROM uji:doc where uji:urlNode like '%notici%'

Esta también:

SELECT * FROM uji:doc where uji:urlNode like 'notici'

y, por supuesto, con esta también:

SELECT * FROM uji:doc where uji:urlNode = 'noticias'

Hemos probado con otras palabras y tenemos lo mismo. Para que funcione el like hay que recortar la palabra que buscamos.

Tenemos más querys en las que usamos LIKE, pero siempre contra cmis:document, y ha funcionado bien. No estamos seguros de si és un bug o nos estamos dejando algo.

Gracias por la ayuda

Paco
2 REPLIES 2

fmelia
Champ in-the-making
Champ in-the-making
El problema era la indexación en Lucene, modificando el modelo hemos corregido este problema:


<model xmlns="http://www.alfresco.org/model/dictionary/1.0" name="uji:customModel">

    <description>Custom Model</description>
    <author/>
    <version>1.0</version>
    <imports>
        <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
        <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
    </imports>

    <namespaces>
        <namespace uri="http://www.uji.es/model/content/1.0" prefix="uji"/>
    </namespaces>

    <types>
        <type name="uji:doc">
            <title>Url Node</title>
            <parent>cm:content</parent>
            <properties>
                <property name="uji:urlNode">
                    <type>d:text</type>
                    <index enabled="true">
                        <atomic>true</atomic>
                        <stored>true</stored>
                        <tokenised>false</tokenised>
                    </index>
                </property>
            </properties>
            <associations/>
        </type>
    </types>
    <aspects/>
</model>

saludos

cristinamr
World-Class Innovator
World-Class Innovator
Pues vaya, si que era simple la solución.. De esos problemas que te dan dolor de cabeza y al final ya ves.

Gracias por compartir la solución  :wink:
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc