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]