jeremy      2002/11/23 06:09:19

  Modified:    src/java/org/apache/cocoon/components/search
                        LuceneIndexContentHandler.java
  Log:
  updated to optionally take the query string from a sitemap parameter 'query'.
  
  Revision  Changes    Path
  1.6       +42 -2     
xml-cocoon2/src/java/org/apache/cocoon/components/search/LuceneIndexContentHandler.java
  
  Index: LuceneIndexContentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/search/LuceneIndexContentHandler.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- LuceneIndexContentHandler.java    22 Feb 2002 07:00:12 -0000      1.5
  +++ LuceneIndexContentHandler.java    23 Nov 2002 14:09:18 -0000      1.6
  @@ -51,6 +51,7 @@
   package org.apache.cocoon.components.search;
   
   import java.util.ArrayList;
  +import java.util.HashSet;
   import java.util.Iterator;
   import java.util.List;
   import java.util.Stack;
  @@ -70,6 +71,7 @@
    * Parse XML and generate lucene document(s)
    *
    * @author     <a href="mailto:[EMAIL PROTECTED]";>Bernhard Huber</a>
  + * @author     <a href="mailto:[EMAIL PROTECTED]";>Jeremy Quinn</a>
    * @version    CVS $Id$
    */
   public class LuceneIndexContentHandler implements ContentHandler
  @@ -85,6 +87,7 @@
       private List documents;
       private Document bodyDocument;
       private Stack elementStack;
  +    private HashSet fieldTags;
   
       /**
        *Constructor for the LuceneIndexContentHandler object
  @@ -97,6 +100,17 @@
           this.documents = new ArrayList();
           this.documents.add(this.bodyDocument);
           this.elementStack = new Stack();
  +        this.fieldTags = new HashSet();
  +    }
  +
  +    /**
  +     *Sets the fieldTags attribute of the LuceneIndexContentHandler object
  +     *
  +     * @param  fieldTags  The new fieldTags value
  +     * @since
  +     */
  +    public void setFieldTags(HashSet fieldTags) { 
  +     this.fieldTags = fieldTags;
       }
   
       /**
  @@ -195,7 +209,11 @@
           }
   
           if (text != null && text.length() > 0) {
  -            bodyDocument.add(Field.UnStored(lname, text.toString()));
  +        
  +             if (isFieldTag(lname)) {
  +                     bodyDocument.add(Field.UnIndexed(lname, text.toString()));
  +             }
  +             bodyDocument.add(Field.UnStored(lname, text.toString()));
           }
       }
   
  @@ -270,4 +288,26 @@
        * @since
        */
       public void startPrefixMapping(String prefix, String uri) { }
  +
  +    /**
  +     * check if tag is a candidate for making into a Field
  +     *
  +     * @param  tag  local name of the tag we are processing
  +     * @return      boolean
  +     * @since
  +     */
  +    private boolean isFieldTag(String tag) {
  +        // by default do not make field
  +        if (fieldTags == null) {
  +            return false;
  +        }
  +                             final String s = tag.toString();
  +        Iterator i = fieldTags.iterator();
  +        while (i.hasNext()) {
  +                     if (tag.equals(i.next())) {
  +                return true;
  +            }
  +        }
  +        return false;
  +    }
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to