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

Reply via email to