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