<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Algunas dudas sobre transactional queries in Alfresco Archive</title>
    <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188904#M142034</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ok, Ángel. Muchas gracias por las aclaraciones, así lo haré!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Una duda sólo, sobre los índices de búsqueda de metadatos que crea el parche en la BD. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;¿Los índices que crea en BD son los índices que especifico en el model.xml con index enabled="true"? Es decir, va al modelo y ahí sabe qué índices debe crear. ¿O crea los índices según su criterio y no tiene nada que ver con lo que ponga en el model.xml?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Lo digo más que nada porque si no tienen relación, entiendo que el indexado en el modelo no serviría para nada si pongo el modo TRANSACTIONAL, ya que nunca iría al SOLR. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 22 Oct 2015 09:33:00 GMT</pubDate>
    <dc:creator>spilby</dc:creator>
    <dc:date>2015-10-22T09:33:00Z</dc:date>
    <item>
      <title>Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188902#M142032</link>
      <description>Buenas,acabamos de pasar a la versión 5.0.2 de Alfresco (veníamos de la 4.1.6) con la intención, sobretodo, de mejorar el tiempo de respuesta en las búsquedas, que con grandes cantidades de información se hacía excesivamente lento.El principal cambio se producirá en las llamadas "transactional queri</description>
      <pubDate>Wed, 21 Oct 2015 14:29:18 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188902#M142032</guid>
      <dc:creator>spilby</dc:creator>
      <dc:date>2015-10-21T14:29:18Z</dc:date>
    </item>
    <item>
      <title>Re: Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188903#M142033</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Esta pregunta no es fácil de responder. Intentaré aportarte mis opiniones aunque, como es natural, pueden no ser lo suficientemente acertadas o precisas.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;En primer lugar creo que el principal motivo por el que se incluyeron las consultas de metadatos sobre base de datos fue por la inmediatez de los resultados, no por el rendimiento. Esto es, cuando SOLR indexa lo hace por encuesta, lo que quiere decir que los cambios no están disponibles hasta unos segundos después de que se han producido. Por tanto, bajo mi punto de vista, esta funcionalidad no ayudará a incrementar la velocidad de las búsquedas sino su fidelidad.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;En cuanto a las diferencia de los diferentes valores de &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;solr.query.fts.queryConsistency&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt;, te recomendaría que le echases un vistazo a la implementación en &lt;/SPAN&gt;&lt;A href="https://github.com/Alfresco/community-edition/blob/master/projects/repository/source/java/org/alfresco/repo/search/impl/solr/DbOrIndexSwitchingQueryLanguage.java" rel="nofollow noopener noreferrer"&gt;https://github.com/Alfresco/community-edition/blob/master/projects/repository/source/java/org/alfresco/repo/search/impl/solr/DbOrIndexSwitchingQueryLanguage.java&lt;/A&gt;&lt;SPAN&gt;. Creo que el propio código fuente resolverá tus dudas. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Tienes que establecer la propiedad &lt;/SPAN&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;system.metadata-query-indexes.ignored=false&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;SPAN&gt; y volver a arrancar Alfresco para que aplique el parche de base de datos que crea los índices de búsqueda de metadatos en la base de datos. Una vez que lo hayas hecho, ya puedes volver a borrar esta propiedad (o dejarla, como quieras, no influirá en adelante).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;En cuanto a si los tipos y metadatos propios son buscados en base de datos, lo cierto es que desconozco la respuesta. Intuitivamente te diría que sí, ya que se almacenan de manera análoga al resto de tipos y aspectos predefinidos de Alfresco (document, folder, dublincore…) en una "tabla de tablas", por lo que los índices y las consultas serán compartidas.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;No obstante, con Alfresco 5 y SOLR 4, lo que sí te recomendaría es que los separases en dos servidores de aplicaciones diferentes. Eso te permitirá ajustar mejor el rendimiento del sistema, ya que podrás aplicar políticas específicas al nodo de SOLR.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 21 Oct 2015 17:03:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188903#M142033</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2015-10-21T17:03:30Z</dc:date>
    </item>
    <item>
      <title>Re: Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188904#M142034</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ok, Ángel. Muchas gracias por las aclaraciones, así lo haré!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Una duda sólo, sobre los índices de búsqueda de metadatos que crea el parche en la BD. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;¿Los índices que crea en BD son los índices que especifico en el model.xml con index enabled="true"? Es decir, va al modelo y ahí sabe qué índices debe crear. ¿O crea los índices según su criterio y no tiene nada que ver con lo que ponga en el model.xml?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Lo digo más que nada porque si no tienen relación, entiendo que el indexado en el modelo no serviría para nada si pongo el modo TRANSACTIONAL, ya que nunca iría al SOLR. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Oct 2015 09:33:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188904#M142034</guid>
      <dc:creator>spilby</dc:creator>
      <dc:date>2015-10-22T09:33:00Z</dc:date>
    </item>
    <item>
      <title>Re: Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188905#M142035</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Son índices de base de datos (&lt;/SPAN&gt;&lt;A href="http://dev.alfresco.com/resource/AlfrescoOne/5.0/configuration/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.Dialect/metadata-query-indexes.sql" rel="nofollow noopener noreferrer"&gt;http://dev.alfresco.com/resource/AlfrescoOne/5.0/configuration/alfresco/dbscripts/upgrade/4.2/org.hibernate.dialect.Dialect/metadata-query-indexes.sql&lt;/A&gt;&lt;SPAN&gt;&lt;span class="lia-unicode-emoji" title=":disappointed_face:"&gt;😞&lt;/span&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;PRE class="language-none line-numbers"&gt;&lt;CODE&gt;&lt;BR /&gt;CREATE INDEX idx_alf_node_mdq ON alf_node (store_id, type_qname_id, id);&amp;nbsp; –(optional)&lt;BR /&gt;CREATE INDEX idx_alf_node_cor ON alf_node (audit_creator, store_id, type_qname_id, id);&amp;nbsp; –(optional)&lt;BR /&gt;CREATE INDEX idx_alf_node_crd ON alf_node (audit_created, store_id, type_qname_id, id);&amp;nbsp; –(optional)&lt;BR /&gt;CREATE INDEX idx_alf_node_mor ON alf_node (audit_modifier, store_id, type_qname_id, id);&amp;nbsp; –(optional)&lt;BR /&gt;CREATE INDEX idx_alf_node_mod ON alf_node (audit_modified, store_id, type_qname_id, id);&amp;nbsp; –(optional)&lt;BR /&gt;&lt;BR /&gt;CREATE INDEX idx_alf_nprop_s ON alf_node_properties (qname_id, string_value, node_id);&amp;nbsp; –(optional)&lt;BR /&gt;CREATE INDEX idx_alf_nprop_l ON alf_node_properties (qname_id, long_value, node_id);&amp;nbsp; –(optional)&lt;BR /&gt;&lt;BR /&gt;CREATE INDEX idx_alf_conturl_sz ON alf_content_url (content_size, id);&amp;nbsp; –(optional)&lt;BR /&gt;&lt;SPAN class="line-numbers-rows"&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;SPAN&gt;‍&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/CODE&gt;&lt;/PRE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Las propiedades del XML solo sirven para SOLR.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Oct 2015 09:54:55 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188905#M142035</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2015-10-22T09:54:55Z</dc:date>
    </item>
    <item>
      <title>Re: Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188906#M142036</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Oks, de acuerdo. Por BD entonces parece que indexa todos los metadatos. No sé muy bien como funciona, porque entiendo que indexarlo todo hace que no sirvan los índices. Pensaba que tendría que especificar qué metadatos en concreto quiero indexar.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Decidir entonces donde hacer las búsquedas es más complejo de lo que creía. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Utilizar queries transaccionales ofrece la ventaja de ir a BD y poder encontrar todos los resultados pese a no estar aún indexados en SOLR, pero en cambio pierdo la velocidad de los índices de SOLR, ya que los índices especificados en algunos metadatos del modelo no se usan en BD. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Queda por comprobar entonces si encontrar un metadato en BD es más rápido que encontrarlo en SOLR pese a estar indexado. No sé si por tu experiencia has podido comprobar qué es mejor, en grandes cantidades de documentos.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Por otra parte, utilizar según qué búsquedas anula el hacerlo sobre BD, como he podido leer en otro hilo, y que dejo aquí por si es útil la información:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;"In general, do not use PATH, SITE, ANCESTOR, OR, any d:content, d:boolean or d:any (among others) properties in your query or it will not be executable against the DB. Also, any property checks must be expressed in a form that means "identical value check" as querying the DB does not provide the same tokenization / similarity capabilities as the SOLR index. E.g. instead of my&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;roperty:"value" you'd have to use =my&lt;img id="smileytongue" class="emoticon emoticon-smileytongue" src="https://connect.hyland.com/i/smilies/16x16_smiley-tongue.png" alt="Smiley Tongue" title="Smiley Tongue" /&gt;roperty:"value" and "value" must be written in the proper case the value is stored in the DB."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Uilizar un OR o un PATH hará que vaya directamente a SOLR. Lo del "d:content" no comprendo muy bien lo que es, si es cualquier metadato propio que cree, y el uso del "=" no me queda claro si también lleva a usar únicamente SOLR al no permitirse en búsqueda por BD, por lo que para hacer búsquedas exactas no sé si sirven las queries transaccionales. &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Oct 2015 10:23:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188906#M142036</guid>
      <dc:creator>spilby</dc:creator>
      <dc:date>2015-10-22T10:23:00Z</dc:date>
    </item>
    <item>
      <title>Re: Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188907#M142037</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;"d:content" es para buscar sobre el contenido de un documento.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Para activar la búsqueda por base de datos debes usar "=" y pasarle el "value" exacto de base de datos (mayúsculas, minúsculas, acentos…)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Oct 2015 12:41:30 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188907#M142037</guid>
      <dc:creator>angelborroy</dc:creator>
      <dc:date>2015-10-22T12:41:30Z</dc:date>
    </item>
    <item>
      <title>Re: Algunas dudas sobre transactional queries</title>
      <link>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188908#M142038</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Ah ok, es que en mis búsquedas ya utilizaba el = en la versión 4.1.6 para buscar valores exactos. Así que lo dejaré igual entonces. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;En el model.xml especifico que no distinga entre mayúsculas, acentos, etc. Y si utilizo funciones como UPPER, no están permitidas en BD. Así que entiendo que si necesito buscar algo que no distinga, mejor ir directamente por SOLR. Y si busco algo exacto iré por BD usando el =. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sobre el tema índices, si en el modelo he definido que algunos de mis metadatos propios se indexen por SOLR, para que sea igual de eficiente si busco por BD, ¿he de modificar el script que me has indicado antes para que cree un índice para esos 5? ¿O no hace falta y el Alfresco ya se apaña?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Por optimizar la velocidad de respuesta lo que pueda, lo digo. ¿Tú crees que entre buscar un dato indexado en SOLR y buscarlo por BD no hay diferencia? Por experiencia propia. Lo digo porque si fuera lo mismo, no haría falta especificar en el modelo qué metadatos indexar, si al final voy a ir por BD si es igual de rápido.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 22 Oct 2015 13:49:00 GMT</pubDate>
      <guid>https://connect.hyland.com/t5/alfresco-archive/algunas-dudas-sobre-transactional-queries/m-p/188908#M142038</guid>
      <dc:creator>spilby</dc:creator>
      <dc:date>2015-10-22T13:49:00Z</dc:date>
    </item>
  </channel>
</rss>

