Buenas,tengo un problema que hace tiempo que no logro resolver, y compienza a ser ya vital solucionarlo.Utilizo Alfresco 4.2.5.1. Necesito hacer búsquedas de metadatos que sean Case Insensitive, para encontrar cadenas ya sea en mayúsculas o en minúsculas.Las búsquedas las realizo mediante ALFRESCO-FTS. Como ejemplo, utilizo el navegador de nodos del Share para probar. Son búsquedas de este estilo:TYPE:"loquesea" AND =@exp\:exp_name:"Test 2016"El problema es que no me busca indistintamente de las mayúsculas/minúsculas. Si tengo un "TEST 2016" y busco un "test 2016" no me lo encontrará, y necesito que me lo encuentre.Si elimino el "=" que precede al campo a buscar en la query sí que hace la búsqueda insensitive, pero necesito de ese "=" ya que quiero buscar la cadena exacta, no parte de la cadena.En mi modelo ese campo está definido así:
<property name="exp:exp_name" editVisible="true" createVisible="true" editable="true" inheritable="false" calculable="true">
<title>Number exp</title>
<type>d:text</type>
<mandatory>true</mandatory>
<index enabled="true">
<atomic>false</atomic>
<stored>false</stored>
<tokenised>both</tokenised>
</index>
</property>
He hecho una prueba y cambiado el tokenised a false, para evitar tener que poner el "=" en la query, pero si lo pongo a false vuelve a ser case sensitive. Parece que lo que lo convierte en insensitive es el tokenised a both (o true).Leí en un foro que inviertiendo el orden de los filtros LowerCaseFilterFactory y WordDelimiterFilterFactory en el schema.xml del solr lo conseguiría, pero lo he hecho y no funciona.
<schema name="alfresco" version="1.0">
<types>
<fieldType name="alfrescoDataType" class="org.alfresco.solr.AlfrescoDataType">
<analyzer>
<tokenizer class="org.apache.solr.analysis.WhitespaceTokenizerFactory" />
<filter class="org.apache.solr.analysis.LowerCaseFilterFactory" />
<filter class="org.apache.solr.analysis.WordDelimiterFilterFactory"
generateWordParts="1"
generateNumberParts="1"
catenateWords="1"
catenateNumbers="1"
catenateAll="1"
splitOnCaseChange="1"
splitOnNumerics="1"
preserveOriginal="1"
stemEnglishPossessive="1"/>
</analyzer>
</fieldType>
</types>
<fields>
<field name="ID" type="alfrescoDataType" indexed="true" omitNorms="true" stored="true" multiValued="true"></field>
<dynamicField name="*" type="alfrescoDataType" indexed="true" omitNorms="true" stored="true" multiValued="true"></dynamicField>
</fields>
<uniqueKey>ID</uniqueKey>
<defaultSearchField>ID</defaultSearchField>
</schema
Además, la búsqueda puede ser tanto transaccional (directo a la BD) como por SOLR, por lo que entiendo que incluso resolviendo este problema en el fichero del solr seguiría teniéndolo cuando sea transaccional y no use SOLR.He visto también que el dataTypeAnalyzer_es.properties utiliza SpanishSnowballAnalyserEstoy seguro que de algún modo se puede configurar para que las búsquedas sean siempre case insensitive.¿Qué puedo hacer para configurarlo?Merci!