Author: tdraier
Date: Mon Aug 27 19:18:54 2007
New Revision: 18276
URL: https://svndev.jahia.net/websvn/listing.php?sc=3D1&rev=3D18276&repname=
=3Djahia
Log:
fixes for jackrabbit search
Modified:
trunk/core/src/java/org/jahia/engines/search/SearchViewHandlerImpl.java
trunk/core/src/java/org/jahia/engines/search/Search_Engine.java
trunk/core/src/java/org/jahia/engines/search/WebSiteSearchDelegate.java
trunk/core/src/java/org/jahia/engines/search/WebdavSearchDelegate.java
trunk/core/src/java/org/jahia/services/content/JahiaAccessManager.java
trunk/core/src/java/org/jahia/services/search/JahiaSearchBaseService.ja=
va
trunk/core/src/java/org/jahia/services/search/JahiaSearchService.java
trunk/core/src/java/org/jahia/services/search/PageSearchResultBuilderIm=
pl.java
trunk/core/src/java/org/jahia/services/search/PageSearcher.java
trunk/core/src/java/org/jahia/services/search/lucene/AbstractLuceneSear=
chHandler.java
trunk/core/src/java/org/jahia/services/search/slide/JcrSearchHandler.ja=
va
trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-basejahiaco=
nfig.xml
Modified: trunk/core/src/java/org/jahia/engines/search/SearchViewHandlerImp=
l.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/search/SearchViewHandlerImpl.java&rev=3D18276&repname=3Dja=
hia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/engines/search/SearchViewHandlerImpl.java=
(original)
+++ trunk/core/src/java/org/jahia/engines/search/SearchViewHandlerImpl.java=
Mon Aug 27 19:18:54 2007
@@ -177,7 +177,7 @@
=
searchResult =3D ServicesRegistry
.getInstance ().getJahiaSearchService ()
- .search(searchHandlers, queryBuffer.toString(), jParams, l=
anguageCodes, resultBuilder);
+ .search(searchHandlers, queryBuffer.toString(), "", jParam=
s, languageCodes, resultBuilder);
}
if (searchResult =3D=3D null) {
searchResult =3D new JahiaSearchResult(new
Modified: trunk/core/src/java/org/jahia/engines/search/Search_Engine.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/search/Search_Engine.java&rev=3D18276&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/engines/search/Search_Engine.java (origin=
al)
+++ trunk/core/src/java/org/jahia/engines/search/Search_Engine.java Mon Aug=
27 19:18:54 2007
@@ -270,7 +270,9 @@
}
searchString =3D StringEscapeUtils.escapeHtml(searchString);
engineMap.put ("searchString", searchString);
-
+ if (!searchString.equals("")) {
+ jParams.setParameter("freeSearch", searchString);
+ }
// update search refine attributes
List searchRefineAttributes =3D (List)engineMap.get(SEARCH_REF=
INE_ATTRIBUTE);
if ( searchRefineAttributes =3D=3D null ){
@@ -395,7 +397,7 @@
boolean advSearchLicenseEnabled =3D LicenseActionChecker
.isAuthorizedByLicense(ADV_SEARCH_LICENCE, 0);
=
- if ( SEARCH_VIEW_ADVANCED.equals(searchView) && advSearchLicenseEn=
abled ){
+// if ( SEARCH_VIEW_ADVANCED.equals(searchView) && advSearchLicense=
Enabled ){
=
// check if a new searchHandler is request
String searchHandlerName =3D jParams.getParameter(SEARCH_HANDL=
ER);
@@ -426,13 +428,13 @@
engineMap.remove(SEARCH_HANDLER);
engineMap.put(SEARCH_VIEW,searchView);
}
- } else {
+// } else {
// ensure to reset any search view handler
- engineMap.remove(SEARCH_HANDLER);
- }
+// engineMap.remove(SEARCH_HANDLER);
+// }
=
JahiaSearchResult searchResults =3D (JahiaSearchResult)engineMap.g=
et("searchResults");
- if ( SEARCH_VIEW_ADVANCED.equals(searchView) && advSearchLicenseEn=
abled ){
+// if ( SEARCH_VIEW_ADVANCED.equals(searchView) && advSearchLicense=
Enabled ){
searchViewHandler.init(jParams, engineMap);
searchViewHandler.update(jParams, engineMap);
if ( !theScreen.equals(NAVIGUATE_RESULT_SCREEN) ) {
@@ -443,33 +445,33 @@
new PageSearchResultBuilderImpl(false);
searchResults =3D new JahiaSearchResult(resultBuilder);
}
- } else {
+// } else {
// simple search
- boolean oneHitPerPage =3D
- ("true".equals(jParams.
- getParameter(PageSearchResultBuilderImpl.ONLY_ONE_HIT_=
BY_PAGE))
- || jParams.
- getParameter(PageSearchResultBuilderImpl.ONLY_ONE_HIT_=
BY_PAGE)=3D=3Dnull);
- PageSearchResultBuilderImpl resultBuilder =3D
- new PageSearchResultBuilderImpl(oneHitPerPage);
- String searchString =3D (String)engineMap.get("searchString");
- ArrayList languageCodes =3D (ArrayList)engineMap.get("searchLa=
nguageCodes");
- if ( theScreen.equals(EXECUTE_SCREEN) || searchResults =3D=3D =
null || !searchResults.isValid() ){
- String refineSearchQuery =3D buildSearchRefineQuery(
- (List)engineMap.get(SEARCH_REFINE_ATTRIBUTE));
-
- StringBuffer query =3D new StringBuffer("(").append(search=
String).append(")");
- if ( refineSearchQuery !=3D null && !"".equals(refineSearc=
hQuery.trim()) ){
- query.append(" AND ( ").append(refineSearchQuery).appe=
nd(" )");
- }
- searchResults =3D ServicesRegistry
- .getInstance ().getJahiaSearchService ()
- .search (jParams.getSiteID(), StringEscapeUtils.unesca=
peHtml(query.toString()), jParams, languageCodes, resultBuilder);
- if (searchResults =3D=3D null) {
- searchResults =3D new JahiaSearchResult(resultBuilder);
- }
- }
- }
+// boolean oneHitPerPage =3D
+// ("true".equals(jParams.
+// getParameter(PageSearchResultBuilderImpl.ONLY_ONE_HI=
T_BY_PAGE))
+// || jParams.
+// getParameter(PageSearchResultBuilderImpl.ONLY_ONE_HI=
T_BY_PAGE)=3D=3Dnull);
+// PageSearchResultBuilderImpl resultBuilder =3D
+// new PageSearchResultBuilderImpl(oneHitPerPage);
+// String searchString =3D (String)engineMap.get("searchString"=
);
+// ArrayList languageCodes =3D (ArrayList)engineMap.get("search=
LanguageCodes");
+// if ( theScreen.equals(EXECUTE_SCREEN) || searchResults =3D=
=3D null || !searchResults.isValid() ){
+// String refineSearchQuery =3D buildSearchRefineQuery(
+// (List)engineMap.get(SEARCH_REFINE_ATTRIBUTE));
+//
+// StringBuffer query =3D new StringBuffer("(").append(sear=
chString).append(")");
+// if ( refineSearchQuery !=3D null && !"".equals(refineSea=
rchQuery.trim()) ){
+// query.append(" AND ( ").append(refineSearchQuery).ap=
pend(" )");
+// }
+// searchResults =3D ServicesRegistry
+// .getInstance ().getJahiaSearchService ()
+// .search (jParams.getSiteID(), StringEscapeUtils.unes=
capeHtml(query.toString()), jParams, languageCodes, resultBuilder);
+// if (searchResults =3D=3D null) {
+// searchResults =3D new JahiaSearchResult(resultBuilde=
r);
+// }
+// }
+// }
=
engineMap.put ("searchResults", searchResults);
}
Modified: trunk/core/src/java/org/jahia/engines/search/WebSiteSearchDelegat=
e.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/search/WebSiteSearchDelegate.java&rev=3D18276&repname=3Dja=
hia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/engines/search/WebSiteSearchDelegate.java=
(original)
+++ trunk/core/src/java/org/jahia/engines/search/WebSiteSearchDelegate.java=
Mon Aug 27 19:18:54 2007
@@ -22,6 +22,7 @@
import org.jahia.params.ProcessingContext;
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.search.*;
+import org.jahia.services.search.savedsearch.JahiaSavedSearch;
=
import java.util.*;
=
@@ -49,9 +50,11 @@
private String updateDate;
private String occurence;
private String contentType;
+ private WebdavSearchDelegate webdavSearch;
=
public WebSiteSearchDelegate(AdvSearchViewHandler searchViewHandler){
super(searchViewHandler);
+ webdavSearch =3D new WebdavSearchDelegate(searchViewHandler);
}
=
public void init(ProcessingContext jParams, HashMap engineMap)
@@ -99,6 +102,7 @@
contentType =3D "any";
}
buildWebSiteQuery();
+ webdavSearch.init(jParams, engineMap);
}
=
/**
@@ -111,6 +115,7 @@
throws JahiaException{
super.update(jParams,engineMap);
buildWebSiteQuery();
+ webdavSearch.update(jParams, engineMap);
}
=
public void buildWebSiteQuery(){
@@ -173,7 +178,7 @@
=
this.searchResult =3D ServicesRegistry
.getInstance ().getJahiaSearchService ()
- .search(searchHandlers, queryBuffer.toString(),
+ .search(searchHandlers, queryBuffer.toString(), webdavSear=
ch.getQuery(),
jParams, this.getLanguageCodes(),
this.getResultBuilder());
}
@@ -303,6 +308,13 @@
=
}
=
+ public void useSavedSearch(ProcessingContext jParams,
+ JahiaSavedSearch savedSearch) {
+ super.useSavedSearch(jParams, savedSearch);
+ webdavSearch.useSavedSearch(jParams, savedSearch);
+ }
+
+
protected void useSaveSearchDoc(ProcessingContext jParams, Element roo=
t)
throws JahiaException {
try
Modified: trunk/core/src/java/org/jahia/engines/search/WebdavSearchDelegate=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/engines/search/WebdavSearchDelegate.java&rev=3D18276&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/engines/search/WebdavSearchDelegate.java =
(original)
+++ trunk/core/src/java/org/jahia/engines/search/WebdavSearchDelegate.java =
Mon Aug 27 19:18:54 2007
@@ -321,14 +321,51 @@
=
public void buildWebdavQuery(ProcessingContext jParams){
query =3D getQuery();
- String xpath =3D "//element(*,jnt:file)";
+ if (query =3D=3D null || query.length()=3D=3D0){
+ return;
+ }
+ String type;
+ switch(resourceType) {
+ case FILE_RESOURCE_TYPE:
+ type=3D"nt:file";
+ break;
+ case COLLECTION_RESOURCE_TYPE:
+ type=3D"nt:folder";
+ break;
+ default:
+ type=3D"nt:hierarchyNode";
+ }
+ String sql =3D "select * from "+type + " where";
+
+ String where =3D "";
+ for (Iterator iterator =3D webdavLocations.iterator(); iterator.ha=
sNext();) {
+ String s =3D (String) iterator.next();
+ where +=3D "jcr:path like '"+ s.substring(s.indexOf("/default"=
)+"/default".length())+ "%'";
+ if (iterator.hasNext()) {
+ where +=3D " or";
+ }
+ }
+ if (where.length()>0) {
+ sql +=3D " ("+where+") and";
+ }
+
+ String contains;
+ if (searchInContentAndFilename =3D=3D CONTENT_AND_FILENAME) {
+ contains =3D " (CONTAINS(jcr:content,'"+query+"') or jcr:path =
like '%"+query+"%')";
+ } else if (searchInContentAndFilename =3D=3D CONTENT_ONLY) {
+ contains =3D " CONTAINS(jcr:content,'"+query+"')";
+ } else {
+ contains =3D " jcr:path like '%\"+query+\"%'";
+ }
+ sql +=3D contains;
+// query =3D sql;
+
+ String xpath =3D "//element(*,"+type+")";
=
if (searchInContentAndFilename =3D=3D CONTENT_AND_FILENAME || sear=
chInContentAndFilename =3D=3D FILENAME_ONLY) {
xpath +=3D "[jcr:contains(jcr:content,'"+query+"')]";
}
=
-// query =3D "<?xml version=3D\"1.0\" encoding=3D\"utf-8\" ?>\n"+
-// "<D:searchrequest xmlns:D=3D\"DAV:\"><xpath>"+xpath+"</x=
path></D:searchrequest>";
query =3D xpath;
}
=
@@ -779,11 +816,10 @@
this.searchResult =3D
ServicesRegistry.getInstance().getJahiaSearchService()
.webdavDASLSearch(this.getQuery(),
- jParams,new WebDavSearchResultBuilderImpl(),pe=
rmission);
+ jParams,resultBuilder,permission);
}
if (this.searchResult =3D=3D null) {
- this.searchResult =3D new JahiaSearchResult(new
- WebDavSearchResultBuilderImpl());
+ this.searchResult =3D new JahiaSearchResult(resultBuilder);
}
return this.searchResult;
}
Modified: trunk/core/src/java/org/jahia/services/content/JahiaAccessManager=
.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/content/JahiaAccessManager.java&rev=3D18276&repname=3Djah=
ia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/content/JahiaAccessManager.java =
(original)
+++ trunk/core/src/java/org/jahia/services/content/JahiaAccessManager.java =
Mon Aug 27 19:18:54 2007
@@ -133,6 +133,8 @@
recurseonACPs(jcrPath, s, v);
return v.isResult();
}
+ } else {
+ return true;
}
=
return false;
Modified: trunk/core/src/java/org/jahia/services/search/JahiaSearchBaseServ=
ice.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/search/JahiaSearchBaseService.java&rev=3D18276&repname=3D=
jahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/search/JahiaSearchBaseService.ja=
va (original)
+++ trunk/core/src/java/org/jahia/services/search/JahiaSearchBaseService.ja=
va Mon Aug 27 19:18:54 2007
@@ -2132,11 +2132,28 @@
ArrayList languageCodes,
JahiaSearchResultBuilder searchResultB=
uilder)
throws JahiaException {
+ return search(searchHandlers, queryString, null, jParams,languageC=
odes, searchResultBuilder);
+ }
+ /**
+ * @param searchHandlers
+ * @param queryString
+ * @param jParams
+ * @param languageCodes
+ * @param searchResultBuilder
+ * @return
+ * @throws JahiaException
+ */
+ public JahiaSearchResult search(String[] searchHandlers,
+ String queryString, String jcrQueryStr=
ing,
+ ProcessingContext jParams,
+ ArrayList languageCodes,
+ JahiaSearchResultBuilder searchResultB=
uilder)
+ throws JahiaException {
=
PageSearcher pageSearcher =3D new PageSearcher(searchHandlers,
languageCodes);
pageSearcher.setSearchResultBuilder(searchResultBuilder);
- JahiaSearchResult result =3D pageSearcher.search(queryString, jPar=
ams);
+ JahiaSearchResult result =3D pageSearcher.search(queryString, jcrQ=
ueryString, jParams);
=
if (result =3D=3D null) {
result =3D new JahiaSearchResult(searchResultBuilder);
Modified: trunk/core/src/java/org/jahia/services/search/JahiaSearchService.=
java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/search/JahiaSearchService.java&rev=3D18276&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/search/JahiaSearchService.java (=
original)
+++ trunk/core/src/java/org/jahia/services/search/JahiaSearchService.java M=
on Aug 27 19:18:54 2007
@@ -501,6 +501,13 @@
JahiaSearchResultBuilder =
searchResultBuilder)
throws JahiaException;
=
+ public abstract JahiaSearchResult search(String[] searchHandlers,
+ String queryString, String jcrQueryStr=
ing,
+ ProcessingContext jParams,
+ ArrayList languageCodes,
+ JahiaSearchResultBuilder searchResultB=
uilder)
+ throws JahiaException;
+
/**
*
* @param queryString
Modified: trunk/core/src/java/org/jahia/services/search/PageSearchResultBui=
lderImpl.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/search/PageSearchResultBuilderImpl.java&rev=3D18276&repna=
me=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/search/PageSearchResultBuilderIm=
pl.java (original)
+++ trunk/core/src/java/org/jahia/services/search/PageSearchResultBuilderIm=
pl.java Mon Aug 27 19:18:54 2007
@@ -36,6 +36,10 @@
import org.jahia.services.containers.ContentContainer;
import org.jahia.services.search.lucene.JahiaAbstractHitCollector;
import org.jahia.services.search.lucene.JahiaHitCollector;
+import org.jahia.services.webdav.JahiaWebdavBaseService;
+import org.jahia.services.webdav.DAVFileAccess;
+import org.jahia.services.webdav.UsageEntry;
+import org.jahia.services.version.EntryLoadRequest;
import org.jahia.exceptions.JahiaException;
import org.jahia.bin.Jahia;
=
@@ -119,6 +123,10 @@
return buildResult(parsedObjects,jParams,JahiaBaseACL.READ_RIGHTS);
}
=
+ private void addField(Map fields, String key , String value) {
+ fields.put(key, new String[] {value});
+ }
+
/**
* @param parsedObjects
* @param jParams
@@ -134,6 +142,40 @@
if (parsedObjects =3D=3D null || parsedObjects.isEmpty())
return result;
=
+ Vector tempParsedObject =3D new Vector(parsedObjects);
+ for (Iterator iterator =3D tempParsedObject.iterator(); iterator.h=
asNext();) {
+ ParsedObject parsedObject =3D (ParsedObject) iterator.next();
+ String uri =3D parsedObject.getValue("uri");
+ String contentType =3D parsedObject.getValue(JahiaSearchConsta=
nt.CONTENT_TYPE);
+ if ("file".equals(contentType)) {
+ List l =3D JahiaWebdavBaseService.getInstance().findUsages=
(uri, jParams, false);
+ for (Iterator iterator1 =3D l.iterator(); iterator1.hasNex=
t();) {
+ UsageEntry e =3D (UsageEntry) iterator1.next();
+ Hashtable fields =3D new Hashtable();
+ addField(fields,JahiaSearchConstant.ID, NumberPadding.=
pad(e.getField().getctnid()));
+ addField(fields,JahiaSearchConstant.FIELD_FIELDID, Num=
berPadding.pad(e.getId()));
+ addField(fields,JahiaSearchConstant.OBJECT_KEY, new Co=
ntentContainerKey(e.getField().getctnid()).toString());
+ addField(fields,JahiaSearchConstant.CONTENT_TYPE, Jahi=
aSearchConstant.CONTAINER_TYPE);
+ addField(fields,JahiaSearchConstant.CONTAINER_ALIAS, N=
umberPadding.pad(e.getId()));
+ addField(fields,JahiaSearchConstant.PAGE_ID, NumberPad=
ding.pad(e.getField().getPageID()));
+ addField(fields,JahiaSearchConstant.WORKFLOW_STATE, Nu=
mberPadding.pad(e.getWorkflow()));
+ addField(fields,JahiaSearchConstant.LANGUAGE_CODE, e.g=
etLang());
+ addField(fields,JahiaSearchConstant.VERSION, NumberPad=
ding.pad(e.getVersion()));
+ ParsedObject newObj =3D new ParsedObjectImpl(parsedObj=
ect.getSearchHit(), parsedObject.getScore(), fields);
+ parsedObjects.add(newObj);
+ if (e.getWorkflow() =3D=3D EntryLoadRequest.ACTIVE_WOR=
KFLOW_STATE && !e.getField().getContentField().hasStagingEntry(e.getLang())=
) {
+ fields =3D new Hashtable(fields);
+ addField(fields,JahiaSearchConstant.WORKFLOW_STATE=
, NumberPadding.pad(EntryLoadRequest.STAGING_WORKFLOW_STATE));
+ newObj =3D new ParsedObjectImpl(parsedObject.getSe=
archHit(), parsedObject.getScore(), fields);
+ parsedObjects.add(newObj);
+ }
+ }
+ parsedObjects.remove(parsedObject);
+ }
+
+ }
+
+
Enumeration resolvedParsedObjects =3D SearchTools
.resolveLiveStagingParsedObjects(parsedObjects, false, jPa=
rams).elements();
=
Modified: trunk/core/src/java/org/jahia/services/search/PageSearcher.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/search/PageSearcher.java&rev=3D18276&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/search/PageSearcher.java (origin=
al)
+++ trunk/core/src/java/org/jahia/services/search/PageSearcher.java Mon Aug=
27 19:18:54 2007
@@ -100,6 +100,22 @@
public JahiaSearchResult search (String query,
ProcessingContext jParams)
throws JahiaException {
+ return search(query, null, jParams);
+ }
+
+ //--------------------------------------------------------------------=
------
+ /**
+ * Perform the search for a given query as String.
+ * The expected result is a JahiaSearchResult object containing a vect=
or of matching pages.
+ *
+ * @param query
+ * @param jParams
+ * @return
+ * @throws JahiaException
+ */
+ public JahiaSearchResult search (String query, String jcrQuery,
+ ProcessingContext jParams)
+ throws JahiaException {
=
// Must set the query first.
setQuery (query);
@@ -143,26 +159,45 @@
queries.toArray(queriesAr);
try {
=
+ Vector allParsedObject =3D new Vector();
+
SearchResult searchResult =3D ServicesRegistry.getInstance()
.getJahiaSearchService().search(queriesAr,this.getSear=
chHandlers(),jParams,
this.searchResultBuilder.getHitCollector());
+
Vector parsedObjects =3D SearchTools.getParsedObjects(searchRe=
sult);
if ( parsedObjects =3D=3D null ){
parsedObjects =3D new Vector();
}
+ allParsedObject.addAll(parsedObjects);
+
+ if (jcrQuery !=3D null) {
+ SearchHandler searchHandler =3D ServicesRegistry.getInstan=
ce()
+ .getJahiaSearchService().getSearchManager().getSea=
rchHandler(JahiaSearchBaseService.WEBDAV_SEARCH);
+ if ( searchHandler !=3D null ){
+ try {
+
+ SearchResult sr =3D searchHandler.search(jcrQuery);
+ allParsedObject.addAll(SearchTools.getParsedObject=
s(sr));
+ } catch (Throwable t) {
+ logger.error (t);
+ }
+ }
+
+ }
=
List searchHandlersList =3D Arrays.asList(this.getSearchHandle=
rs());
if ( searchHandlersList.contains(JahiaSearchBaseService.WEBDAV=
_SEARCH) ){
WebDavSearchResultBuilderImpl searchBuilder =3D new WebDav=
SearchResultBuilderImpl();
- result =3D searchBuilder.buildResult(parsedObjects, jParam=
s);
+ result =3D searchBuilder.buildResult(allParsedObject, jPar=
ams);
} else {
- result =3D searchResultBuilder.buildResult(parsedObjects, =
jParams);
+ result =3D searchResultBuilder.buildResult(allParsedObject=
, jParams);
}
// Store the result.
setResult (result);
=
} catch (Throwable t) {
- logger.error (t);
+ logger.error ("Error",t);
}
return result;
}
Modified: trunk/core/src/java/org/jahia/services/search/lucene/AbstractLuce=
neSearchHandler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/search/lucene/AbstractLuceneSearchHandler.java&rev=3D1827=
6&repname=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/search/lucene/AbstractLuceneSear=
chHandler.java (original)
+++ trunk/core/src/java/org/jahia/services/search/lucene/AbstractLuceneSear=
chHandler.java Mon Aug 27 19:18:54 2007
@@ -36,7 +36,7 @@
/**
* Created by IntelliJ IDEA.
* User: hollis
- * Date: 15 f=C3=A9vr. 2005
+ * Date: 15 f=C3=AF=C2=BF=C2=BDvr. 2005
* Time: 18:47:47
* To change this template use File | Settings | File Templates.
*/
@@ -216,7 +216,7 @@
}
collector.results().addAll(result.results());
} catch (Throwable t) {
- logger.debug("Exception occured when performing search", t);
+ logger.error("Exception occured when performing search", t);
} finally {
/*
synchronized(lockCounter){
Modified: trunk/core/src/java/org/jahia/services/search/slide/JcrSearchHand=
ler.java
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/java/o=
rg/jahia/services/search/slide/JcrSearchHandler.java&rev=3D18276&repname=3D=
jahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/java/org/jahia/services/search/slide/JcrSearchHandler.ja=
va (original)
+++ trunk/core/src/java/org/jahia/services/search/slide/JcrSearchHandler.ja=
va Mon Aug 27 19:18:54 2007
@@ -34,6 +34,7 @@
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.Properties;
+import java.util.List;
=
/**
* Created by IntelliJ IDEA.
@@ -136,12 +137,17 @@
// Session session =3D null;
// Workspace ws =3D null;
//
+
+ if (query =3D=3D null || query.length() =3D=3D 0) {
+ return;
+ }
+
JCRStoreService jcrStoreService =3D ServicesRegistry.getInstan=
ce().getJCRStoreService();
Session session =3D jcrStoreService.getSession(jParams);
=
QueryManager qm =3D session.getWorkspace().getQueryManager();
Query q =3D qm.createQuery(query, Query.XPATH);
-
+ =
QueryResult queryResult =3D q.execute();
RowIterator it =3D queryResult.getRows();
=
@@ -150,17 +156,23 @@
Row row =3D it.nextRow();
String path =3D row.getValue("jcr:path").getString();
SlideSearchHit searchHit =3D new SlideSearchHit(path);
+ =
ArrayList list =3D new ArrayList();
list.add(path);
searchHit.getFields().put("uri",list);
- searchHit.setScore((float) row.getValue("jcr:score").getDo=
uble());
+ List l =3D new ArrayList();
+ l.add("file");
+ searchHit.getFields().put(JahiaSearchConstant.CONTENT_TYPE=
, l);
+// searchHit.getFields().put(JahiaSearchConstant.ID, path);
+//
+ searchHit.setScore((float) (row.getValue("jcr:score").getD=
ouble()/1000.));
searchResult.add(searchHit);
searchHit.setSearchResult(searchResult);
}
=
collector.results().addAll(searchResult.results());
} catch ( Throwable t ){
- logger.debug("Exception Slide search", t);
+ logger.error("Exception Slide search", t);
}
}
=
Modified: trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-basej=
ahiaconfig.xml
URL: https://svndev.jahia.net/websvn/diff.php?path=3D/trunk/core/src/webapp=
/WEB-INF/etc/spring/applicationcontext-basejahiaconfig.xml&rev=3D18276&repn=
ame=3Djahia
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-basejahiaco=
nfig.xml (original)
+++ trunk/core/src/webapp/WEB-INF/etc/spring/applicationcontext-basejahiaco=
nfig.xml Mon Aug 27 19:18:54 2007
@@ -127,7 +127,8 @@
maxClauseCount
org.apache.lucene.maxClauseCount 1024
lockDir
org.apache.lucene.lockDir the value of
java.io.tmpdir=
system property
-->
- <prop
key=3D"org.jahia.engines.search.searchViewHandler.default">org.j=
ahia.engines.search.SearchViewHandlerImpl</prop>
+ <prop
key=3D"org.jahia.engines.search.searchViewHandler.search">org.ja=
hia.engines.search.AdvSearchViewHandler</prop>
+ <prop
key=3D"org.jahia.engines.search.searchViewHandler.default">org.j=
ahia.engines.search.AdvSearchViewHandler</prop>
<prop
key=3D"org.jahia.engines.search.searchViewHandler.advSearch">org=
.jahia.engines.search.AdvSearchViewHandler</prop>
=
<prop
key=3D"org.apache.lucene.mergeFactor">30</prop>
_______________________________________________
cvs_list mailing list
[email protected]
http://lists.jahia.org/cgi-bin/mailman/listinfo/cvs_list