mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
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:
@@ -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?
|
||||||
|
|
||||||
|
@@ -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?
|
||||||
|
|
||||||
|
@@ -103,79 +103,77 @@ 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"));
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
url.append(sortBuffer);
|
url.append(sortBuffer);
|
||||||
|
|
||||||
// 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?
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user