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]