Avevo un problema che ho risolto, anche se non ho capito perché si presentava…
Utilizzando Lucene, la ricerca fulltext non funzionava bene. Soprattutto con wildcards.
Per fare un esempio: cercando la parola "assunto", mi ritornava anche documenti con "assunti", "assunta" ecc. Oppure cercando "trasformista", mi ritornava anche documenti con "trasformismo" (approssimando quindi due caratteri), ecc.
Ma soprattutto non funzionava la ricerca con caratteri jolly. Cercando "ass?nto" non usciva niente.
Alla fine ho capito che l'indicizzazione si "mangiava" l'ultimo carattere; infatti cercando "ass?nt", ecco che magicamente mi uscivano tutti i risultati corretti. Stesso discorso con il carattere *: per cercare la parola "determinazione", cercando per esempio "*termina*" o anche "*terminazio*" la trovavo, invece con "*terminazion*" no, perché la parola negli indici veniva evidentemente troncata a "determinazion".
Cercando un po' su google, ho letto il consiglio di commentare, all'interno del file dataTypeAnalyzers_it.properties cioè il data analyzer italiano, le due righe che contiene:
# d_dictionary.datatype.d_text.analyzer=org.alfresco.repo.search.impl.lucene.analysis.ItalianSnowballAnalyser
# d_dictionary.datatype.d_content.analyzer=org.alfresco.repo.search.impl.lucene.analysis.ItalianSnowballAnalyser
In tal modo vengono utilizzati quello dello standard data analyzer, contenuti nel file dataTypeAnalyzers.properties, cioè:
d_dictionary.datatype.d_text.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
d_dictionary.datatype.d_content.analyzer=org.alfresco.repo.search.impl.lucene.analysis.AlfrescoStandardAnalyser
La domanda è la seguente: come mai il data analyzer in italiano indicizza male i documenti in italiano, "mangiandosi" le lettere finali dei contenuti testuali?
Ciao e grazie