ALF-9079: RSOLR 019: Lucene to SOLR switchover administration

- fixed ordering and the indexing of datetime for ordering

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29239 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2011-07-21 09:13:49 +00:00
parent 2fe6c6fa72
commit 79ec6cd1e3
3 changed files with 59 additions and 62 deletions

View File

@@ -104,25 +104,26 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true); httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true);
httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin")); httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin"));
URLCodec encoder = new URLCodec();
StringBuilder url = new StringBuilder(); StringBuilder url = new StringBuilder();
url.append(getBaseUrl()); url.append(getBaseUrl());
url.append("/alfresco/afts"); url.append("/alfresco/afts");
//duplicate the query in the URL //duplicate the query in the URL
url.append("?q="); url.append("?q=");
URLCodec encoder = new URLCodec();
url.append(encoder.encode(searchParameters.getQuery(), "UTF-8")); url.append(encoder.encode(searchParameters.getQuery(), "UTF-8"));
url.append("&wt=json"); url.append("&wt=").append(encoder.encode("json", "UTF-8"));
url.append("&fl=*,score"); url.append("&fl=").append(encoder.encode("*,score", "UTF-8"));
if(searchParameters.getMaxItems() > 0) if(searchParameters.getMaxItems() > 0)
{ {
url.append("&rows=").append(searchParameters.getMaxItems()); url.append("&rows=").append(encoder.encode(""+searchParameters.getMaxItems(), "UTF-8"));
} }
else else
{ {
url.append("&rows=").append(Integer.MAX_VALUE); url.append("&rows=").append(encoder.encode(""+Integer.MAX_VALUE, "UTF-8"));
} }
url.append("&df=").append(searchParameters.getDefaultFieldName()); url.append("&df=").append(encoder.encode(searchParameters.getDefaultFieldName(), "UTF-8"));
url.append("&start=").append(searchParameters.getSkipCount()); url.append("&start=").append(encoder.encode(""+searchParameters.getSkipCount(), "UTF-8"));
Locale locale = I18NUtil.getLocale(); Locale locale = I18NUtil.getLocale();
if(searchParameters.getLocales().size() > 0) if(searchParameters.getLocales().size() > 0)
@@ -130,7 +131,6 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
locale = searchParameters.getLocales().get(0); locale = searchParameters.getLocales().get(0);
} }
url.append("&locale="); url.append("&locale=");
encoder = new URLCodec();
url.append(encoder.encode(locale.toString(), "UTF-8")); url.append(encoder.encode(locale.toString(), "UTF-8"));
StringBuffer sortBuffer = new StringBuffer(); StringBuffer sortBuffer = new StringBuffer();
@@ -142,16 +142,16 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
} }
else else
{ {
sortBuffer.append(", "); sortBuffer.append(encoder.encode(", ", "UTF-8"));
} }
sortBuffer.append(sortDefinition.getField()).append(" "); sortBuffer.append(encoder.encode(sortDefinition.getField(), "UTF-8")).append(encoder.encode(" ", "UTF-8"));
if(sortDefinition.isAscending()) if(sortDefinition.isAscending())
{ {
sortBuffer.append("asc"); sortBuffer.append(encoder.encode("asc", "UTF-8"));
} }
else else
{ {
sortBuffer.append("desc"); sortBuffer.append(encoder.encode("desc", "UTF-8"));
} }
} }
@@ -173,7 +173,7 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
//encoder = new URLCodec(); //encoder = new URLCodec();
//url.append(encoder.encode(authQuery.toString(), "UTF-8")); //url.append(encoder.encode(authQuery.toString(), "UTF-8"));
url.append("&fq=AUTHORITY_FILTER_FROM_JSON"); url.append("&fq=").append(encoder.encode("{!afts}AUTHORITY_FILTER_FROM_JSON", "UTF-8"));
// facets would go on url? // facets would go on url?

View File

@@ -104,25 +104,27 @@ public class SolrAlfrescoQueryLanguage extends AbstractSolrQueryLanguage
httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true); httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true);
httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin")); httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin"));
URLCodec encoder = new URLCodec();
StringBuilder url = new StringBuilder(); StringBuilder url = new StringBuilder();
url.append(getBaseUrl()); url.append(getBaseUrl());
url.append("/alfresco/alfresco"); url.append("/alfresco/alfresco");
//duplicate the query in the URL //duplicate the query in the URL
//duplicate the query in the URL
url.append("?q="); url.append("?q=");
URLCodec encoder = new URLCodec();
url.append(encoder.encode(searchParameters.getQuery(), "UTF-8")); url.append(encoder.encode(searchParameters.getQuery(), "UTF-8"));
url.append("&wt=json"); url.append("&wt=").append(encoder.encode("json", "UTF-8"));
url.append("&fl=*,score"); url.append("&fl=").append(encoder.encode("*,score", "UTF-8"));
if(searchParameters.getMaxItems() > 0) if(searchParameters.getMaxItems() > 0)
{ {
url.append("&rows=").append(searchParameters.getMaxItems()); url.append("&rows=").append(encoder.encode(""+searchParameters.getMaxItems(), "UTF-8"));
} }
else else
{ {
url.append("&rows=").append(Integer.MAX_VALUE); url.append("&rows=").append(encoder.encode(""+Integer.MAX_VALUE, "UTF-8"));
} }
url.append("&df=").append(searchParameters.getDefaultFieldName()); url.append("&df=").append(encoder.encode(searchParameters.getDefaultFieldName(), "UTF-8"));
url.append("&start=").append(searchParameters.getSkipCount()); url.append("&start=").append(encoder.encode(""+searchParameters.getSkipCount(), "UTF-8"));
Locale locale = I18NUtil.getLocale(); Locale locale = I18NUtil.getLocale();
if(searchParameters.getLocales().size() > 0) if(searchParameters.getLocales().size() > 0)
@@ -130,7 +132,6 @@ public class SolrAlfrescoQueryLanguage extends AbstractSolrQueryLanguage
locale = searchParameters.getLocales().get(0); locale = searchParameters.getLocales().get(0);
} }
url.append("&locale="); url.append("&locale=");
encoder = new URLCodec();
url.append(encoder.encode(locale.toString(), "UTF-8")); url.append(encoder.encode(locale.toString(), "UTF-8"));
StringBuffer sortBuffer = new StringBuffer(); StringBuffer sortBuffer = new StringBuffer();
@@ -142,16 +143,16 @@ public class SolrAlfrescoQueryLanguage extends AbstractSolrQueryLanguage
} }
else else
{ {
sortBuffer.append(", "); sortBuffer.append(encoder.encode(", ", "UTF-8"));
} }
sortBuffer.append(sortDefinition.getField()).append(" "); sortBuffer.append(encoder.encode(sortDefinition.getField(), "UTF-8")).append(encoder.encode(" ", "UTF-8"));
if(sortDefinition.isAscending()) if(sortDefinition.isAscending())
{ {
sortBuffer.append("asc"); sortBuffer.append(encoder.encode("asc", "UTF-8"));
} }
else else
{ {
sortBuffer.append("desc"); sortBuffer.append(encoder.encode("desc", "UTF-8"));
} }
} }
@@ -173,9 +174,7 @@ public class SolrAlfrescoQueryLanguage extends AbstractSolrQueryLanguage
//encoder = new URLCodec(); //encoder = new URLCodec();
//url.append(encoder.encode(authQuery.toString(), "UTF-8")); //url.append(encoder.encode(authQuery.toString(), "UTF-8"));
url.append("&fq="); url.append("&fq=").append(encoder.encode("{!afts}AUTHORITY_FILTER_FROM_JSON", "UTF-8"));
url.append(encoder.encode("{!afts}", "UTF-8"));
url.append("AUTHORITY_FILTER_FROM_JSON");
// facets would go on url? // facets would go on url?

View File

@@ -103,55 +103,55 @@ public class SolrCMISQueryLanguage extends AbstractSolrQueryLanguage
httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true); httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true);
httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin")); httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin"));
URLCodec encoder = new URLCodec();
StringBuilder url = new StringBuilder(); StringBuilder url = new StringBuilder();
url.append(getBaseUrl()); url.append(getBaseUrl());
url.append("/alfresco/cmis"); url.append("/alfresco/cmis");
//duplicate the query in the URL
//duplicate the query in the URL
url.append("?q="); url.append("?q=");
URLCodec encoder = new URLCodec();
url.append(encoder.encode(searchParameters.getQuery(), "UTF-8")); url.append(encoder.encode(searchParameters.getQuery(), "UTF-8"));
url.append("&wt=json"); url.append("&wt=").append(encoder.encode("json", "UTF-8"));
url.append("&fl=*,score"); url.append("&fl=").append(encoder.encode("*,score", "UTF-8"));
if (searchParameters.getMaxItems() > 0) if(searchParameters.getMaxItems() > 0)
{ {
url.append("&rows=").append(searchParameters.getMaxItems()); url.append("&rows=").append(encoder.encode(""+searchParameters.getMaxItems(), "UTF-8"));
} }
else else
{ {
url.append("&rows=").append(Integer.MAX_VALUE); url.append("&rows=").append(encoder.encode(""+Integer.MAX_VALUE, "UTF-8"));
} }
url.append("&df=").append(searchParameters.getDefaultFieldName()); url.append("&df=").append(encoder.encode(searchParameters.getDefaultFieldName(), "UTF-8"));
url.append("&start=").append(searchParameters.getSkipCount()); url.append("&start=").append(encoder.encode(""+searchParameters.getSkipCount(), "UTF-8"));
Locale locale = I18NUtil.getLocale(); Locale locale = I18NUtil.getLocale();
if (searchParameters.getLocales().size() > 0) if(searchParameters.getLocales().size() > 0)
{ {
locale = searchParameters.getLocales().get(0); locale = searchParameters.getLocales().get(0);
} }
url.append("&locale="); url.append("&locale=");
encoder = new URLCodec();
url.append(encoder.encode(locale.toString(), "UTF-8")); url.append(encoder.encode(locale.toString(), "UTF-8"));
// Will use this search if not specified as part of the query )no order by clause)
// If the query contains an order by clause this will be used instead.
StringBuffer sortBuffer = new StringBuffer(); StringBuffer sortBuffer = new StringBuffer();
for (SortDefinition sortDefinition : searchParameters.getSortDefinitions()) for(SortDefinition sortDefinition : searchParameters.getSortDefinitions())
{ {
if (sortBuffer.length() == 0) if(sortBuffer.length() == 0)
{ {
sortBuffer.append("&sort="); sortBuffer.append("&sort=");
} }
else else
{ {
sortBuffer.append(", "); sortBuffer.append(encoder.encode(", ", "UTF-8"));
} }
sortBuffer.append(sortDefinition.getField()).append(" "); sortBuffer.append(encoder.encode(sortDefinition.getField(), "UTF-8")).append(encoder.encode(" ", "UTF-8"));
if (sortDefinition.isAscending()) if(sortDefinition.isAscending())
{ {
sortBuffer.append("asc"); sortBuffer.append(encoder.encode("asc", "UTF-8"));
} }
else else
{ {
sortBuffer.append("desc"); sortBuffer.append(encoder.encode("desc", "UTF-8"));
} }
} }
@@ -160,22 +160,20 @@ public class SolrCMISQueryLanguage extends AbstractSolrQueryLanguage
// Authorities go over in body // Authorities go over in body
StringBuilder authQuery = new StringBuilder(); StringBuilder authQuery = new StringBuilder();
for (String authority : permissionService.getAuthorisations()) for(String authority : permissionService.getAuthorisations())
{ {
if (authQuery.length() > 0) if(authQuery.length() > 0)
{ {
authQuery.append(" "); authQuery.append(" ");
} }
authQuery.append("AUTHORITY:\"").append(authority).append("\""); authQuery.append("AUTHORITY:\"").append(authority).append("\"");
} }
// url.append("&fq="); //url.append("&fq=");
// encoder = new URLCodec(); //encoder = new URLCodec();
// url.append(encoder.encode(authQuery.toString(), "UTF-8")); //url.append(encoder.encode(authQuery.toString(), "UTF-8"));
url.append("&fq="); url.append("&fq=").append(encoder.encode("{!afts}AUTHORITY_FILTER_FROM_JSON", "UTF-8"));
url.append(encoder.encode("{!afts}", "UTF-8"));
url.append("AUTHORITY_FILTER_FROM_JSON");
// facets would go on url? // facets would go on url?