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.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin"));
URLCodec encoder = new URLCodec();
StringBuilder url = new StringBuilder();
url.append(getBaseUrl());
url.append("/alfresco/afts");
//duplicate the query in the URL
url.append("?q=");
URLCodec encoder = new URLCodec();
url.append(encoder.encode(searchParameters.getQuery(), "UTF-8"));
url.append("&wt=json");
url.append("&fl=*,score");
url.append("&wt=").append(encoder.encode("json", "UTF-8"));
url.append("&fl=").append(encoder.encode("*,score", "UTF-8"));
if(searchParameters.getMaxItems() > 0)
{
url.append("&rows=").append(searchParameters.getMaxItems());
url.append("&rows=").append(encoder.encode(""+searchParameters.getMaxItems(), "UTF-8"));
}
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("&start=").append(searchParameters.getSkipCount());
url.append("&df=").append(encoder.encode(searchParameters.getDefaultFieldName(), "UTF-8"));
url.append("&start=").append(encoder.encode(""+searchParameters.getSkipCount(), "UTF-8"));
Locale locale = I18NUtil.getLocale();
if(searchParameters.getLocales().size() > 0)
@@ -130,7 +131,6 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
locale = searchParameters.getLocales().get(0);
}
url.append("&locale=");
encoder = new URLCodec();
url.append(encoder.encode(locale.toString(), "UTF-8"));
StringBuffer sortBuffer = new StringBuffer();
@@ -142,16 +142,16 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
}
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())
{
sortBuffer.append("asc");
sortBuffer.append(encoder.encode("asc", "UTF-8"));
}
else
{
sortBuffer.append("desc");
sortBuffer.append(encoder.encode("desc", "UTF-8"));
}
}
@@ -173,7 +173,7 @@ public class SolrAlfrescoFTSQueryLanguage extends AbstractSolrQueryLanguage
//encoder = new URLCodec();
//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?

View File

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

View File

@@ -103,79 +103,77 @@ public class SolrCMISQueryLanguage extends AbstractSolrQueryLanguage
httpClient.getParams().setBooleanParameter(HttpClientParams.PREEMPTIVE_AUTHENTICATION, true);
httpClient.getState().setCredentials(new AuthScope(AuthScope.ANY_HOST, AuthScope.ANY_PORT), new UsernamePasswordCredentials("admin", "admin"));
URLCodec encoder = new URLCodec();
StringBuilder url = new StringBuilder();
url.append(getBaseUrl());
url.append("/alfresco/cmis");
//duplicate the query in the URL
//duplicate the query in the URL
url.append("?q=");
URLCodec encoder = new URLCodec();
url.append(encoder.encode(searchParameters.getQuery(), "UTF-8"));
url.append("&wt=json");
url.append("&fl=*,score");
if (searchParameters.getMaxItems() > 0)
url.append("&wt=").append(encoder.encode("json", "UTF-8"));
url.append("&fl=").append(encoder.encode("*,score", "UTF-8"));
if(searchParameters.getMaxItems() > 0)
{
url.append("&rows=").append(searchParameters.getMaxItems());
url.append("&rows=").append(encoder.encode(""+searchParameters.getMaxItems(), "UTF-8"));
}
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("&start=").append(searchParameters.getSkipCount());
url.append("&df=").append(encoder.encode(searchParameters.getDefaultFieldName(), "UTF-8"));
url.append("&start=").append(encoder.encode(""+searchParameters.getSkipCount(), "UTF-8"));
Locale locale = I18NUtil.getLocale();
if (searchParameters.getLocales().size() > 0)
if(searchParameters.getLocales().size() > 0)
{
locale = searchParameters.getLocales().get(0);
}
url.append("&locale=");
encoder = new URLCodec();
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();
for (SortDefinition sortDefinition : searchParameters.getSortDefinitions())
for(SortDefinition sortDefinition : searchParameters.getSortDefinitions())
{
if (sortBuffer.length() == 0)
if(sortBuffer.length() == 0)
{
sortBuffer.append("&sort=");
}
else
{
sortBuffer.append(", ");
sortBuffer.append(encoder.encode(", ", "UTF-8"));
}
sortBuffer.append(sortDefinition.getField()).append(" ");
if (sortDefinition.isAscending())
sortBuffer.append(encoder.encode(sortDefinition.getField(), "UTF-8")).append(encoder.encode(" ", "UTF-8"));
if(sortDefinition.isAscending())
{
sortBuffer.append("asc");
sortBuffer.append(encoder.encode("asc", "UTF-8"));
}
else
{
sortBuffer.append("desc");
sortBuffer.append(encoder.encode("desc", "UTF-8"));
}
}
url.append(sortBuffer);
// Authorities go over in body
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("AUTHORITY:\"").append(authority).append("\"");
}
// url.append("&fq=");
// encoder = new URLCodec();
// url.append(encoder.encode(authQuery.toString(), "UTF-8"));
url.append("&fq=");
url.append(encoder.encode("{!afts}", "UTF-8"));
url.append("AUTHORITY_FILTER_FROM_JSON");
//url.append("&fq=");
//encoder = new URLCodec();
//url.append(encoder.encode(authQuery.toString(), "UTF-8"));
url.append("&fq=").append(encoder.encode("{!afts}AUTHORITY_FILTER_FROM_JSON", "UTF-8"));
// facets would go on url?