knguyen 2005/02/28 17:09:55 CET
Modified files:
core/src/java/org/jahia/engines/search Search_Engine.java
Log:
- refactoring search service so that we can launch search on multiple
searchable
Revision Changes Path
1.7 +14 -7
jahia/core/src/java/org/jahia/engines/search/Search_Engine.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/search/Search_Engine.java.diff?r1=1.6&r2=1.7&f=h
Index: Search_Engine.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/search/Search_Engine.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- Search_Engine.java 23 Feb 2005 17:12:39 -0000 1.6
+++ Search_Engine.java 28 Feb 2005 16:09:55 -0000 1.7
@@ -39,7 +39,6 @@
import org.jahia.bin.Jahia;
import org.springframework.beans.factory.BeanFactory;
-
/**
* This engine is called when the user wants to do a search on the jahia
site. It displays
* sorted results using a JSP output which leaves every aspect of the search
results design on
@@ -227,7 +226,7 @@
if ( searchViewHandler == null ){
String searchHandlerName =
jParams.getRequest().getParameter(SEARCH_HANDLER);
try {
- searchViewHandler = this.getSearchHandler(searchHandlerName);
+ searchViewHandler =
this.getSearchViewHandler(searchHandlerName);
if ( searchViewHandler != null ){
searchViewHandler.setName(searchHandlerName);
}
@@ -243,14 +242,21 @@
String theScreen = (String)engineMap.get("screen");
if ( searchViewHandler == null ){
JahiaSearchResult searchResults =
(JahiaSearchResult)engineMap.get("searchResults");
+ boolean oneHitPerPage =
+ ("true".equals(jParams.getRequest()
+
.getParameter(PageSearchResultBuilderImpl.ONE_HIT_BY_PAGE_PARAMETER_NAME)));
+ PageSearchResultBuilderImpl resultBuilder =
+ new PageSearchResultBuilderImpl(oneHitPerPage);
+
if ( theScreen.equals("execute") || searchResults == null ){
searchResults = ServicesRegistry
.getInstance ().getJahiaSearchService ()
- .doSearch (searchString, jParams, languageCodes);
+ .search (jParams.getSiteID(),
+ searchString, jParams, languageCodes,
resultBuilder);
}
+
if (searchResults == null) {
- searchResults = new JahiaSearchResult(new
- JahiaSearchResultHandlerImpl());
+ searchResults = new JahiaSearchResult(resultBuilder);
}
engineMap.put ("searchResults", searchResults);
}
@@ -325,7 +331,8 @@
* @param name
* @return
*/
- public SearchViewHandler getSearchHandler(String name) throws Exception {
+ public SearchViewHandler getSearchViewHandler(String name) throws
Exception {
+
if ( name == null ){
return null;
}
@@ -334,7 +341,7 @@
if ( settings == null ){
return null;
}
- String className = settings.getProperty(name);
+ String className =
settings.getProperty("org.jahia.engines.search.searchViewHandler." + name);
if ( className != null ){
Class c = Class.forName(className);
return (SearchViewHandler)c.newInstance();