@{http://www.alfresco.org/model/content/1.0}firstName:*adrian*
@{http://www.alfresco.org/model/content/1.0}lastName:*adrian*
Esto, no devuelve ningún usuario, siguiendo la sintaxis de Lucene.@{http://www.alfresco.org/model/content/1.0}firstName:'*adrian*"
@{http://www.alfresco.org/model/content/1.0}lastName:'*adrian*"
Nos lo encontraría. String term = QueryParser.escape(contains.trim());
StringBuilder query = new StringBuilder(128);
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:");
query.append(term);
query.append("*");
Como ves, aquí ya viene con los asteriscos intercalados…@{http://www.alfresco.org/model/content/1.0}firstName:'*adrian*"
@{http://www.alfresco.org/model/content/1.0}lastName:'*adrian*"
@{http://www.alfresco.org/model/content/1.0}firstName:'*jimenez*"
@{http://www.alfresco.org/model/content/1.0}lastName:'*jimenez*"
Ahora, si quieres que sea más inteligente y el primer subterm te lo asigne para el nombre y el otro para el apellido, pues entonces, es subdividir el string en nombre y posible apellido y hacer las 2 condiciones (la 2ª condicion, la del apellido, siempre que te hayan puesto apellido, es decir, siempre que tu varialbe apellido no sea null)…12:16:20,902 User:sapodoble DEBUG [bean.wizard.BaseInviteUsersWizard] Maximum invite users results size: 500¿Existe alguna razón de base para que se comporte de esta forma? para nuestro uso sería recomendable que las búsquedas puedan hacerse por nombre + apellido.
12:16:20,902 User:sapodoble DEBUG [bean.wizard.BaseInviteUsersWizard] Using query to find users: @cm\:firstName:"*Jose Serra*" @cm\:lastName:"*Jose Serra*" @cm\:userName:Jose Serra*
Modificaciones en la claseorg.alfresco.web.ui.common.Utils
public static void generatePersonSearch(StringBuilder query, String term)
{
StringBuffer strb = new StringBuffer ();
StringTokenizer st = new StringTokenizer(term.trim());
if (st.countTokens()==1)
{
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:email:\"*");
query.append(term);
query.append("*\"");
}
else if(st.countTokens()==2)
{
String token1 = new String(st.nextToken());
String token2 = new String(st.nextToken());
query.append("(@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(token1);
query.append("*\" AND @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(token2);
query.append("*\")");
query.append(" OR ");
query.append("(@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(token1);
query.append("*\" AND @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(token2);
query.append("*\")");
query.append(" OR ");
query.append("(@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:\"*");
query.append(token1);
query.append("*\" OR @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:\"*");
query.append(token2);
query.append("*\")");
}else
{
query.append("(");
for (int i=0; i < (st.countTokens()-2) ; i++)
{
String mtoken = st.nextToken();
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(mtoken);
query.append("*\" ");
}
query.append(") AND (");
String token1 = new String(st.nextToken());
String token2 = new String(st.nextToken());
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(token1);
query.append(" ");
query.append(token2);
query.append("*\"");
query.append(")");
}
}
Código de la modificación en la función search() de (org.alfresco.web.bean.users) UserDialog
…..
StringBuilder query = new StringBuilder(128);
Utils.generatePersonSearch(query, properties.getSearchCriteria());
// COMENTAMOS / BORRAMOS LA GENERACIÓN DE LA CONSULTA
/* String search = properties.getSearchCriteria().trim();
StringBuilder query = new StringBuilder(128);
for (StringTokenizer t = new StringTokenizer(search, " "); t.hasMoreTokens(); )
{
String term = LuceneQueryParser.escape(t.nextToken());
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");
query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:");
query.append(term);
query.append("*");
}
*/
….
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.