You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by je...@apache.org on 2002/11/23 15:09:19 UTC

cvs commit: xml-cocoon2/src/java/org/apache/cocoon/components/search LuceneIndexContentHandler.java

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:berni_huber@a1.net">Bernhard Huber</a>
  + * @author     <a href="mailto:jeremy@apache.org">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:     webmaster@xml.apache.org
To unsubscribe, e-mail:          cocoon-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: cocoon-cvs-help@xml.apache.org