09-18-2008 02:35 AM
09-21-2008 09:41 AM
@{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…10-06-2008 07:38 AM
10-06-2008 10:44 AM
@{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)…10-07-2008 04:40 AM
08-18-2009 06:30 AM
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*
08-21-2009 03:35 AM
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("*");
}
*/
….
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.