cancel
Showing results for 
Search instead for 
Did you mean: 

Pasos correctos para añadir un nuevo model.xml a SOLR?: Request failed 500

spilby
Confirmed Champ
Confirmed Champ
Al lanzar una query FTS_ALFRESCO veo que no me reconoce el modelo que he incorporado con types y properties que quiero añadir a mis nodos.

Os resumo los pasos que he seguido, por si me estoy dejando algo por hacer…

1. El nuevo modelo al que llamaremos ownModel.xml lo he dejado en …/tomcat/shared/classes/alfresco/extension. Ahí veo un monton de samples que venían con la instalación. Es un modelo que nos funcionaba en nuestro anterior Alfresco, por lo que asumo que está bien definido y es correcto.

2. Siguiendo los pasos especificados en http://docs.alfresco.com/5.0/tasks/solr-reindex.html, elimino los directorios que ahí se indican y levanto el SOLR (concretamente, el Tomcat Server con la herramienta que proporciona Alfresco One).

3. Veo que en la carpeta …/alf_data/solr4/model aparecen (una vez arrancado todo) un monton de xml. Entre ellos por ejemplo el custom.customModel.1697115130.xml. Entiendo que son los xml que ha cargado el SOLR.

Ahí no veo mi ownModel.xml. ¿Lo he de poner a mano? ¿No lo coge del directorio del punto 1? Por si acaso, lo he puesto a mano, pero sigue sin funcionar.

Veo también otra carpeta, la solr4/alfrescoModels, con diversos xml como por ejemplo

cm.contentmodel.1446713330.xml
cmis.cmismodel.1280296084.xml
test.solrtest.0.xml

Los 2 primeros aparecen en /alf_data/solr4/model, pero el tercero no… ¿?¿?


Para ver si funciona o no, simplemente lanzo una query para que busque por una de las property que he añadido y en el log del SOLR veo el siguiente error:

<blockquote>org.alfresco.service.namespace.NamespaceException Namespace prefix exp is not mapped to a namespace URI</blockquote>

por lo que entiendo que no está cargando el modelo.


He probado desde el navegador de nodos distintas queries. Las queries que lanzo, con ALFRESCO-FTS, son


@cm:emailsFeedId:"1234"


que es correcta y no me da problemas.

Pruebo con una property del test.solrtest.0.xml de ejemplo


@test:text-indexed-stored-tokenised-atomic:"1234"


Y me devuelve:

<blockquote>10110031 line 1:42 no viable alternative at input ':' (decision=17 state 78) decision=<<445:1: ftsTest : ( ( ftsFieldGroupProximity )=> (…)</blockquote>


Y por últmo pruebo con la property de mi modelo:


@exp:suport:"1234"


que me devuelve:

<blockquote>10110022 Request failed 500 /solr4/alfresco/afts?wt=json&fl=DBID%2Cscore&rows=1000&df=TEXT&start=0&locale=es_ES&alternativeDic=DEFAULT_DICTIONARY&fq=%7B%21afts%7DAUTHORITY_FILTER_FROM_JSON&fq=%7B%21afts%7DTENANT_FILTER_FROM_JSON </blockquote>


¿Debo hacer algún paso más o estoy haciendo algo mal a simple vista?

Merciiii

4 REPLIES 4

angelborroy
Community Manager Community Manager
Community Manager
Tienes que cargar el modelo mediante Spring en el bootstrap.

Si te fijas en
alfresco/tomcat/shared/classes/alfresco/extension
verás dos ficheros de ejemplo que funcionan conjuntamente:
customModel.xml.sample
- Contiene la definición del modelo (tipos, aspectos, asociaciones…)
custom-model-context.xml.sample
- Contiene la carga del modelo mediante Spring

En tu caso, debes incluir un fichero
own-model-context.xml
en el directorio
extension
con un contenido similar a lo siguiente:

<beans>
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
                <value>alfresco/extension/ownModel.xml</value>
            </list>
        </property>
    </bean>
</beans>
Hyland Developer Evangelist

spilby
Confirmed Champ
Confirmed Champ
Perfecto! Ya me funciona. Me faltaba ese fichero de inyección por Spring. Merci, Ángel!!! Smiley Happy

Por curiosidad… ¿los xml que hay en <alf>\solr4\alfrescoModels sirven para algo?

angelborroy
Community Manager Community Manager
Community Manager
Diría que no: creo que son ficheros internos para las propias pruebas de validación de Alfresco.

Los modelos de trabajo "reales" para SOLR se generan en
alfresco/alf_data/solr4/model/..
Hyland Developer Evangelist

spilby
Confirmed Champ
Confirmed Champ
Oks! Pues nada, resumiendo, xml del modelo en alfresco/tomcat/shared/classes/alfresco/extension y el xml de inyección del modelo por Spring en el mismo sitio. Cierro el hilo ;o)