jford       2004/02/18 08:12:11

  Modified:    src/java/org/apache/jetspeed/services/search/lucene
                        LuceneSearchService.java
  Log:
  Updated impl to populate keyword multimap from the keywords of the hanlder
  
  Revision  Changes    Path
  1.7       +29 -28    
jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/lucene/LuceneSearchService.java
  
  Index: LuceneSearchService.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed/src/java/org/apache/jetspeed/services/search/lucene/LuceneSearchService.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- LuceneSearchService.java  17 Feb 2004 03:59:56 -0000      1.6
  +++ LuceneSearchService.java  18 Feb 2004 16:12:11 -0000      1.7
  @@ -346,7 +346,7 @@
       {
           try
           {
  -            MultiMap keywords = new MultiHashMap();
  +            MultiMap multiKeywords = new MultiHashMap();
               MultiMap multiFields = new MultiHashMap();
               
               Field classNameField = doc.getField(ParsedObject.FIELDNAME_CLASSNAME);
  @@ -356,39 +356,40 @@
                   ObjectHandler handler = HandlerFactory.getHandler(className);
                   
                   Set fields = handler.getFields();
  -                Iterator fieldIter = fields.iterator();
  -                while(fieldIter.hasNext())
  -                {
  -                    String fieldName = (String)fieldIter.next();
  -                    Field[] docFields = doc.getFields(fieldName);
  -                    if(fields != null)
  -                    {
  -                        for(int i=0; i<docFields.length; i++)
  -                        {
  -                            Field field = docFields[i];
  -                            if(field != null)
  -                            {
  -                                String value = field.stringValue();
  -                                if(field.isTokenized())
  -                                {
  -                                    multiFields.put(fieldName, value);
  -                                }
  -                                else //it's a keyword
  -                                {
  -                                    keywords.put(fieldName, value);
  -                                }
  -                            }
  -                        }
  -                    }
  -                }
  +                addFieldsToMap(doc, fields, multiFields);
  +                
  +                Set keywords = handler.getKeywords();
  +                addFieldsToMap(doc, keywords, multiKeywords);
               }
               
  -            o.setMultiKeywords(keywords);
  +            o.setMultiKeywords(multiKeywords);
               o.setMultiFields(multiFields);
           }
           catch(Exception e)
           {
               logger.error("Error trying to add fields to parsed object.", e);
  +        }
  +    }
  +    
  +    private void addFieldsToMap(Document doc, Set fieldNames, MultiMap fields)
  +    {
  +        Iterator fieldIter = fieldNames.iterator();
  +        while(fieldIter.hasNext())
  +        {
  +            String fieldName = (String)fieldIter.next();
  +            Field[] docFields = doc.getFields(fieldName);
  +            if(fields != null)
  +            {
  +                for(int i=0; i<docFields.length; i++)
  +                {
  +                    Field field = docFields[i];
  +                    if(field != null)
  +                    {
  +                        String value = field.stringValue();
  +                        fields.put(fieldName, value);
  +                    }
  +                }
  +            }
           }
       }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to