Lucene upgrade to 2.4.1: MOB-587: First round of fixes for the query parser

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@13633 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Andrew Hind
2009-03-16 12:08:04 +00:00
parent a966e847f0
commit 02171f6699
9 changed files with 22 additions and 21 deletions

View File

@@ -37,7 +37,7 @@ import javax.faces.model.SelectItem;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.repo.transaction.RetryingTransactionHelper;
import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback; import org.alfresco.repo.transaction.RetryingTransactionHelper.RetryingTransactionCallback;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -210,7 +210,7 @@ public class AddUsersDialog extends BaseDialogBean
SelectItem[] items; SelectItem[] items;
// Use lucene search to retrieve user details // Use lucene search to retrieve user details
String term = QueryParser.escape(contains.trim()); String term = LuceneQueryParser.escape(contains.trim());
StringBuilder query = new StringBuilder(128); StringBuilder query = new StringBuilder(128);
Utils.generatePersonSearch(query, term); Utils.generatePersonSearch(query, term);
List<NodeRef> nodes; List<NodeRef> nodes;

View File

@@ -39,7 +39,7 @@ import javax.faces.context.FacesContext;
import org.alfresco.error.AlfrescoRuntimeException; import org.alfresco.error.AlfrescoRuntimeException;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
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.Path; import org.alfresco.service.cmr.repository.Path;
@@ -352,8 +352,8 @@ public class SearchContext implements Serializable
{ {
String escapedName = Repository.escapeQName(qname); String escapedName = Repository.escapeQName(qname);
RangeProperties rp = rangeAttributes.get(qname); RangeProperties rp = rangeAttributes.get(qname);
String value1 = QueryParser.escape(rp.lower); String value1 = LuceneQueryParser.escape(rp.lower);
String value2 = QueryParser.escape(rp.upper); String value2 = LuceneQueryParser.escape(rp.upper);
attributeQuery.append(" +@").append(escapedName) attributeQuery.append(" +@").append(escapedName)
.append(":").append(rp.inclusive ? "[" : "{").append(value1) .append(":").append(rp.inclusive ? "[" : "{").append(value1)
.append(" TO ").append(value2).append(rp.inclusive ? "]" : "}"); .append(" TO ").append(value2).append(rp.inclusive ? "]" : "}");

View File

@@ -39,7 +39,7 @@ import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.node.archive.RestoreNodeReport; import org.alfresco.repo.node.archive.RestoreNodeReport;
import org.alfresco.repo.node.archive.RestoreNodeReport.RestoreStatus; import org.alfresco.repo.node.archive.RestoreNodeReport.RestoreStatus;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.repo.web.scripts.FileTypeImageUtils; import org.alfresco.repo.web.scripts.FileTypeImageUtils;
import org.alfresco.service.cmr.repository.ChildAssociationRef; import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.ContentData; import org.alfresco.service.cmr.repository.ContentData;
@@ -594,7 +594,7 @@ public class TrashcanDialog extends BaseDialogBean implements IContextListener
else else
{ {
// search by name in the archive store // search by name in the archive store
String safeText = QueryParser.escape(property.getSearchText()); String safeText = LuceneQueryParser.escape(property.getSearchText());
if (safeText.indexOf(' ') == -1) if (safeText.indexOf(' ') == -1)
{ {
if (property.isFullTextSearch()) if (property.isFullTextSearch())
@@ -656,8 +656,8 @@ public class TrashcanDialog extends BaseDialogBean implements IContextListener
if (fromDate != null) if (fromDate != null)
{ {
SimpleDateFormat df = CachingDateFormat.getDateFormat(); SimpleDateFormat df = CachingDateFormat.getDateFormat();
String strFromDate = QueryParser.escape(df.format(fromDate)); String strFromDate = LuceneQueryParser.escape(df.format(fromDate));
String strToDate = QueryParser.escape(df.format(toDate)); String strToDate = LuceneQueryParser.escape(df.format(toDate));
StringBuilder buf = new StringBuilder(128); StringBuilder buf = new StringBuilder(128);
buf.append("@").append(DATE_ATTR) buf.append("@").append(DATE_ATTR)
.append(":").append("[").append(strFromDate) .append(":").append("[").append(strFromDate)

View File

@@ -37,7 +37,7 @@ import javax.faces.event.ActionEvent;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.repo.security.authentication.AuthenticationException; import org.alfresco.repo.security.authentication.AuthenticationException;
import org.alfresco.service.cmr.repository.InvalidNodeRefException; import org.alfresco.service.cmr.repository.InvalidNodeRefException;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
@@ -328,7 +328,7 @@ public class UsersDialog extends BaseDialogBean implements IContextListener, Cha
StringBuilder query = new StringBuilder(128); StringBuilder query = new StringBuilder(128);
for (StringTokenizer t = new StringTokenizer(search, " "); t.hasMoreTokens(); /**/) for (StringTokenizer t = new StringTokenizer(search, " "); t.hasMoreTokens(); /**/)
{ {
String term = QueryParser.escape(t.nextToken()); String term = LuceneQueryParser.escape(t.nextToken());
query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*"); query.append("@").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:firstName:\"*");
query.append(term); query.append(term);
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*"); query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:lastName:\"*");

View File

@@ -30,7 +30,7 @@ import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.avm.AVMNodeConverter; import org.alfresco.repo.avm.AVMNodeConverter;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.service.cmr.avm.AVMNodeDescriptor; import org.alfresco.service.cmr.avm.AVMNodeDescriptor;
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;
@@ -247,7 +247,7 @@ public class SetPermissionsDialog extends UpdatePermissionsDialog
if (filterIndex == 0) if (filterIndex == 0)
{ {
// Use lucene search to retrieve user details // Use lucene search to retrieve user details
String term = QueryParser.escape(contains.trim()); String term = LuceneQueryParser.escape(contains.trim());
StringBuilder query = new StringBuilder(128); StringBuilder query = new StringBuilder(128);
Utils.generatePersonSearch(query, term); Utils.generatePersonSearch(query, term);
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(Repository.getStoreRef(), SearchService.LANGUAGE_LUCENE, query.toString()); ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(Repository.getStoreRef(), SearchService.LANGUAGE_LUCENE, query.toString());

View File

@@ -35,7 +35,6 @@ import java.util.Map;
import java.util.ResourceBundle; import java.util.ResourceBundle;
import java.util.Set; import java.util.Set;
import javax.faces.application.FacesMessage;
import javax.faces.component.UISelectOne; import javax.faces.component.UISelectOne;
import javax.faces.context.FacesContext; import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent; import javax.faces.event.ActionEvent;
@@ -45,7 +44,7 @@ import javax.faces.model.SelectItem;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
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;
@@ -66,6 +65,7 @@ import org.alfresco.web.ui.common.Utils;
import org.alfresco.web.ui.common.component.UIGenericPicker; import org.alfresco.web.ui.common.component.UIGenericPicker;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.BooleanQuery; import org.apache.lucene.search.BooleanQuery;
import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSender;
@@ -392,7 +392,7 @@ public abstract class BaseInviteUsersWizard extends BaseWizardBean
if (filterIndex == 0) if (filterIndex == 0)
{ {
// Use lucene search to retrieve user details // Use lucene search to retrieve user details
String term = QueryParser.escape(search); String term = LuceneQueryParser.escape(search);
StringBuilder query = new StringBuilder(128); StringBuilder query = new StringBuilder(128);
if (contains == null || contains.length() == 0) if (contains == null || contains.length() == 0)
{ {

View File

@@ -35,7 +35,7 @@ import javax.faces.model.SelectItem;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;
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;
@@ -49,6 +49,7 @@ import org.alfresco.web.bean.dialog.BaseDialogBean;
import org.alfresco.web.bean.repository.Repository; import org.alfresco.web.bean.repository.Repository;
import org.alfresco.web.ui.common.SortableSelectItem; import org.alfresco.web.ui.common.SortableSelectItem;
import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.Utils;
import org.apache.lucene.queryParser.QueryParser;
/** /**
* Base dialog bean for workflow user reassignment. * Base dialog bean for workflow user reassignment.
@@ -149,7 +150,7 @@ public abstract class BaseReassignDialog extends BaseDialogBean
int maxResults = Application.getClientConfig(context).getInviteUsersMaxResults(); int maxResults = Application.getClientConfig(context).getInviteUsersMaxResults();
// Use lucene search to retrieve user details // Use lucene search to retrieve user details
String term = QueryParser.escape(contains.trim()); String term = LuceneQueryParser.escape(contains.trim());
StringBuilder query = new StringBuilder(128); StringBuilder query = new StringBuilder(128);
Utils.generatePersonSearch(query, term); Utils.generatePersonSearch(query, term);

View File

@@ -35,7 +35,7 @@ import javax.faces.context.ResponseWriter;
import javax.faces.el.ValueBinding; import javax.faces.el.ValueBinding;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser; import org.alfresco.repo.search.impl.lucene.LuceneQueryParser;
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.NodeService;
import org.alfresco.service.cmr.search.LimitBy; import org.alfresco.service.cmr.search.LimitBy;
@@ -49,6 +49,7 @@ import org.alfresco.web.bean.repository.Repository;
import org.alfresco.web.ui.common.Utils; import org.alfresco.web.ui.common.Utils;
import org.apache.commons.logging.Log; import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory; import org.apache.commons.logging.LogFactory;
import org.apache.lucene.queryParser.QueryParser;
/** /**
* Component for selecting content from the repository * Component for selecting content from the repository
@@ -354,7 +355,7 @@ public class UIContentSelector extends UIInput
if (contains != null && contains.length() > 0) if (contains != null && contains.length() > 0)
{ {
String safeContains = QueryParser.escape(contains.trim()); String safeContains = LuceneQueryParser.escape(contains.trim());
query.append(" AND +@"); query.append(" AND +@");
String nameAttr = Repository.escapeQName(QName.createQName( String nameAttr = Repository.escapeQName(QName.createQName(

View File

@@ -44,7 +44,6 @@ import javax.faces.event.FacesEvent;
import javax.transaction.UserTransaction; import javax.transaction.UserTransaction;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.repo.search.impl.lucene.QueryParser;
import org.alfresco.repo.security.authority.AuthorityDAO; import org.alfresco.repo.security.authority.AuthorityDAO;
import org.alfresco.service.cmr.dictionary.AssociationDefinition; import org.alfresco.service.cmr.dictionary.AssociationDefinition;
import org.alfresco.service.cmr.repository.NodeRef; import org.alfresco.service.cmr.repository.NodeRef;