mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Another fix for : ALF-10453 SOLR: Errors in the log while starting Alfresco until search engine is changed to lucene.
- solr result set now has a NodeService wired up to recover properties in the same manner as the lucene version ... git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31739 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -34,6 +34,9 @@
|
|||||||
<property name="nodeDAO">
|
<property name="nodeDAO">
|
||||||
<ref bean="nodeDAO" />
|
<ref bean="nodeDAO" />
|
||||||
</property>
|
</property>
|
||||||
|
<property name="nodeService">
|
||||||
|
<ref bean="mlAwareNodeService" />
|
||||||
|
</property>
|
||||||
<property name="permissionService">
|
<property name="permissionService">
|
||||||
<ref bean="permissionService" />
|
<ref bean="permissionService" />
|
||||||
</property>
|
</property>
|
||||||
|
@@ -28,6 +28,7 @@ import org.alfresco.repo.domain.node.NodeDAO;
|
|||||||
import org.alfresco.repo.search.SimpleResultSetMetaData;
|
import org.alfresco.repo.search.SimpleResultSetMetaData;
|
||||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.repository.StoreRef;
|
import org.alfresco.service.cmr.repository.StoreRef;
|
||||||
import org.alfresco.service.cmr.search.LimitBy;
|
import org.alfresco.service.cmr.search.LimitBy;
|
||||||
import org.alfresco.service.cmr.search.PermissionEvaluationMode;
|
import org.alfresco.service.cmr.search.PermissionEvaluationMode;
|
||||||
@@ -48,6 +49,8 @@ public class SolrJSONResultSet implements ResultSet
|
|||||||
{
|
{
|
||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
|
|
||||||
|
private NodeService nodeService;
|
||||||
|
|
||||||
private ArrayList<Pair<Long, Float>> page;
|
private ArrayList<Pair<Long, Float>> page;
|
||||||
|
|
||||||
private ResultSetMetaData rsmd;
|
private ResultSetMetaData rsmd;
|
||||||
@@ -70,10 +73,11 @@ public class SolrJSONResultSet implements ResultSet
|
|||||||
* Detached result set based on that provided
|
* Detached result set based on that provided
|
||||||
* @param resultSet
|
* @param resultSet
|
||||||
*/
|
*/
|
||||||
public SolrJSONResultSet(JSONObject json, NodeDAO nodeDAO, SearchParameters searchParameters)
|
public SolrJSONResultSet(JSONObject json, NodeDAO nodeDAO, SearchParameters searchParameters, NodeService nodeService)
|
||||||
{
|
{
|
||||||
// Note all properties are returned as multi-valued from the WildcardField "*" definition in the SOLR schema.xml
|
// Note all properties are returned as multi-valued from the WildcardField "*" definition in the SOLR schema.xml
|
||||||
this.nodeDAO = nodeDAO;
|
this.nodeDAO = nodeDAO;
|
||||||
|
this.nodeService = nodeService;
|
||||||
this.resultSetMetaData = new SimpleResultSetMetaData(LimitBy.UNLIMITED, PermissionEvaluationMode.EAGER, searchParameters);
|
this.resultSetMetaData = new SimpleResultSetMetaData(LimitBy.UNLIMITED, PermissionEvaluationMode.EAGER, searchParameters);
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -137,6 +141,12 @@ public class SolrJSONResultSet implements ResultSet
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public NodeService getNodeService()
|
||||||
|
{
|
||||||
|
return nodeService;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* (non-Javadoc)
|
* (non-Javadoc)
|
||||||
* @see org.alfresco.service.cmr.search.ResultSetSPI#close()
|
* @see org.alfresco.service.cmr.search.ResultSetSPI#close()
|
||||||
|
@@ -18,11 +18,13 @@
|
|||||||
*/
|
*/
|
||||||
package org.alfresco.repo.search.impl.lucene;
|
package org.alfresco.repo.search.impl.lucene;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.alfresco.repo.search.AbstractResultSetRow;
|
import org.alfresco.repo.search.AbstractResultSetRow;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.search.ResultSet;
|
import org.alfresco.service.cmr.search.ResultSet;
|
||||||
|
import org.alfresco.service.namespace.QName;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andy
|
* @author Andy
|
||||||
@@ -79,4 +81,10 @@ public class SolrJSONResultSetRow extends AbstractResultSetRow
|
|||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected Map<QName, Serializable> getDirectProperties()
|
||||||
|
{
|
||||||
|
SolrJSONResultSet rs = (SolrJSONResultSet) getResultSet();
|
||||||
|
return rs.getNodeService().getProperties(rs.getNodeRef(getIndex()));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -30,12 +30,15 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
|
|
||||||
import org.alfresco.error.AlfrescoRuntimeException;
|
import org.alfresco.error.AlfrescoRuntimeException;
|
||||||
import org.alfresco.httpclient.HttpClientFactory;
|
import org.alfresco.httpclient.HttpClientFactory;
|
||||||
|
import org.alfresco.model.ContentModel;
|
||||||
import org.alfresco.repo.domain.node.NodeDAO;
|
import org.alfresco.repo.domain.node.NodeDAO;
|
||||||
import org.alfresco.repo.search.impl.lucene.LuceneQueryParserException;
|
import org.alfresco.repo.search.impl.lucene.LuceneQueryParserException;
|
||||||
import org.alfresco.repo.search.impl.lucene.SolrJSONResultSet;
|
import org.alfresco.repo.search.impl.lucene.SolrJSONResultSet;
|
||||||
|
import org.alfresco.service.cmr.repository.NodeService;
|
||||||
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
|
import org.alfresco.service.cmr.repository.datatype.DefaultTypeConverter;
|
||||||
import org.alfresco.service.cmr.search.LimitBy;
|
import org.alfresco.service.cmr.search.LimitBy;
|
||||||
import org.alfresco.service.cmr.search.ResultSet;
|
import org.alfresco.service.cmr.search.ResultSet;
|
||||||
|
import org.alfresco.service.cmr.search.ResultSetRow;
|
||||||
import org.alfresco.service.cmr.search.SearchParameters;
|
import org.alfresco.service.cmr.search.SearchParameters;
|
||||||
import org.alfresco.service.cmr.search.SearchParameters.FieldFacet;
|
import org.alfresco.service.cmr.search.SearchParameters.FieldFacet;
|
||||||
import org.alfresco.service.cmr.search.SearchParameters.FieldFacetMethod;
|
import org.alfresco.service.cmr.search.SearchParameters.FieldFacetMethod;
|
||||||
@@ -70,6 +73,8 @@ public class SolrQueryHTTPClient
|
|||||||
|
|
||||||
private NodeDAO nodeDAO;
|
private NodeDAO nodeDAO;
|
||||||
|
|
||||||
|
private NodeService nodeService;
|
||||||
|
|
||||||
private PermissionService permissionService;
|
private PermissionService permissionService;
|
||||||
|
|
||||||
private Map<String, String> languageMappings;
|
private Map<String, String> languageMappings;
|
||||||
@@ -107,6 +112,11 @@ public class SolrQueryHTTPClient
|
|||||||
this.nodeDAO = nodeDAO;
|
this.nodeDAO = nodeDAO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setNodeService(NodeService nodeService)
|
||||||
|
{
|
||||||
|
this.nodeService = nodeService;
|
||||||
|
}
|
||||||
|
|
||||||
public void setPermissionService(PermissionService permissionService)
|
public void setPermissionService(PermissionService permissionService)
|
||||||
{
|
{
|
||||||
this.permissionService = permissionService;
|
this.permissionService = permissionService;
|
||||||
@@ -338,7 +348,7 @@ public class SolrQueryHTTPClient
|
|||||||
Reader reader = new BufferedReader(new InputStreamReader(post.getResponseBodyAsStream()));
|
Reader reader = new BufferedReader(new InputStreamReader(post.getResponseBodyAsStream()));
|
||||||
// TODO - replace with streaming-based solution e.g. SimpleJSON ContentHandler
|
// TODO - replace with streaming-based solution e.g. SimpleJSON ContentHandler
|
||||||
JSONObject json = new JSONObject(new JSONTokener(reader));
|
JSONObject json = new JSONObject(new JSONTokener(reader));
|
||||||
SolrJSONResultSet results = new SolrJSONResultSet(json, nodeDAO, searchParameters);
|
SolrJSONResultSet results = new SolrJSONResultSet(json, nodeDAO, searchParameters, nodeService);
|
||||||
if (s_logger.isDebugEnabled())
|
if (s_logger.isDebugEnabled())
|
||||||
{
|
{
|
||||||
s_logger.debug("Sent :" + url);
|
s_logger.debug("Sent :" + url);
|
||||||
|
Reference in New Issue
Block a user