Author: woonsan
Date: Fri Jul 23 23:08:29 2010
New Revision: 967299

URL: http://svn.apache.org/viewvc?rev=967299&view=rev
Log:
JS2-1198: Adding new search method to allow to set the default search field.
By using this, it's now possible to search only on keywords.

Modified:
    
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
    
portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/lucene/SearchEngineImpl.java
    
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/search/SearchEngine.java

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java?rev=967299&r1=967298&r2=967299&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-portal/src/main/java/org/apache/jetspeed/services/rest/PortletRegistryService.java
 Fri Jul 23 23:08:29 2010
@@ -166,6 +166,7 @@ public class PortletRegistryService
     public PortletDefinitionBeanCollection getPortletDefinitions(@Context 
HttpServletRequest servletRequest,
                                                                  @Context 
UriInfo uriInfo,
                                                                  
@PathParam("path") List<PathSegment> pathSegments, 
+                                                                 
@QueryParam("keywords") String keywordsParam, 
                                                                  
@QueryParam("query") String queryParam, 
                                                                  
@QueryParam("begin") String beginIndexParam,
                                                                  
@QueryParam("max") String maxResultsParam)
@@ -194,13 +195,23 @@ public class PortletRegistryService
         pdBeans.setTotalSize(0);
         List<PortletDefinitionBean> pdBeanList = new 
ArrayList<PortletDefinitionBean>();
         
-        if (!StringUtils.isBlank(queryParam))
+        if (!StringUtils.isBlank(keywordsParam) || 
!StringUtils.isBlank(queryParam))
         {
             String queryText = 
                 ParsedObject.FIELDNAME_TYPE + ":\"" + 
ParsedObject.OBJECT_TYPE_PORTLET + "\" " +
                 "AND NOT " + ParsedObject.FIELDNAME_TYPE + ":\"" + 
ParsedObject.OBJECT_TYPE_PORTLET_APPLICATION + "\" " + 
-                "AND ( " + queryParam + " )";
-            SearchResults searchResults = searchEngine.search(queryText);
+                "AND ( " + (!StringUtils.isBlank(keywordsParam) ? 
keywordsParam : queryParam) + " )";
+            SearchResults searchResults = null;
+            
+            if (!StringUtils.isBlank(keywordsParam))
+            {
+                searchResults = searchEngine.search(queryText, 
ParsedObject.FIELDNAME_KEYWORDS);
+            }
+            else
+            {
+                searchResults = searchEngine.search(queryText);
+            }
+            
             List<ParsedObject> searchResultList = searchResults.getResults();
             ArrayList<PortletDefinition> searchedPortletDefinitions = new 
ArrayList<PortletDefinition>();
             

Modified: 
portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/lucene/SearchEngineImpl.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/lucene/SearchEngineImpl.java?rev=967299&r1=967298&r2=967299&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/lucene/SearchEngineImpl.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/components/jetspeed-search/src/main/java/org/apache/jetspeed/search/lucene/SearchEngineImpl.java
 Fri Jul 23 23:08:29 2010
@@ -495,13 +495,21 @@ public class SearchEngineImpl implements
      */
     public SearchResults search(String queryString)
     {
-        return search(queryString, defaultTopHitsCount);
+        return search(queryString, ParsedObject.FIELDNAME_SYNTHETIC);
     }
     
     /* (non-Javadoc)
-     * @see org.apache.jetspeed.search.SearchEngine#search(java.lang.String)
+     * @see org.apache.jetspeed.search.SearchEngine#search(java.lang.String, 
java.lang.String)
      */
-    public SearchResults search(String queryString, int topHitsCount)
+    public SearchResults search(String queryString, String defaultFieldName)
+    {
+        return search(queryString, defaultFieldName, defaultTopHitsCount);
+    }
+    
+    /* (non-Javadoc)
+     * @see org.apache.jetspeed.search.SearchEngine#search(java.lang.String, 
java.lang.String, int)
+     */
+    public SearchResults search(String queryString, String defaultFieldName, 
int topHitsCount)
     {
         SearchResults results = null;
         
@@ -513,7 +521,7 @@ public class SearchEngineImpl implements
             indexReader = IndexReader.open(directory);
             searcher = new IndexSearcher(indexReader);
             
-            QueryParser queryParser = new QueryParser(Version.LUCENE_30, 
ParsedObject.FIELDNAME_SYNTHETIC, analyzer);
+            QueryParser queryParser = new QueryParser(Version.LUCENE_30, 
defaultFieldName, analyzer);
             Query query = queryParser.parse(queryString);
             TopDocs topDocs = searcher.search(query, topHitsCount);
             

Modified: 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/search/SearchEngine.java
URL: 
http://svn.apache.org/viewvc/portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/search/SearchEngine.java?rev=967299&r1=967298&r2=967299&view=diff
==============================================================================
--- 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/search/SearchEngine.java
 (original)
+++ 
portals/jetspeed-2/portal/trunk/jetspeed-api/src/main/java/org/apache/jetspeed/search/SearchEngine.java
 Fri Jul 23 23:08:29 2010
@@ -40,5 +40,7 @@ public interface SearchEngine
     
     SearchResults search(String query);
     
-    SearchResults search(String query, int topHitsCount);
+    SearchResults search(String query, String defaultFieldName);
+    
+    SearchResults search(String query, String defaultFieldName, int 
topHitsCount);
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-dev-unsubscr...@portals.apache.org
For additional commands, e-mail: jetspeed-dev-h...@portals.apache.org

Reply via email to