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]