Update of /var/cvs/contributions/lucene/src/org/mmbase/module/lucene
In directory james.mmbase.org:/tmp/cvs-serv12353

Modified Files:
        IndexFieldDefinition.java MMBaseEntry.java 
        MMBaseIndexDefinition.java 
Log Message:
LUCENE-14


See also: 
http://cvs.mmbase.org/viewcvs/contributions/lucene/src/org/mmbase/module/lucene
See also: http://www.mmbase.org/jira/browse/LUCENE-14


Index: IndexFieldDefinition.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/IndexFieldDefinition.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- IndexFieldDefinition.java   12 Dec 2007 10:38:20 -0000      1.10
+++ IndexFieldDefinition.java   18 Aug 2008 08:46:01 -0000      1.11
@@ -21,7 +21,7 @@
  * Defines options for a field to index.
  *
  * @author Pierre van Rooden
- * @version $Id: IndexFieldDefinition.java,v 1.10 2007/12/12 10:38:20 pierre 
Exp $
+ * @version $Id: IndexFieldDefinition.java,v 1.11 2008/08/18 08:46:01 michiel 
Exp $
  **/
 public class IndexFieldDefinition extends FieldDefinition {
 
@@ -64,6 +64,8 @@
 
     public float boost = 1.0f;
 
+    public String split = "";
+
     IndexFieldDefinition(boolean storeTextDefault, boolean mergeTextDefault, 
Set<String> allIndexedFieldsSet) {
         super();
         this.storeTextDefault = storeTextDefault;
@@ -106,6 +108,8 @@
         if (QueryReader.hasAttribute(fieldElement,"boost")) {
             boost = Float.valueOf(QueryReader.getAttribute(fieldElement, 
"boost"));
         }
+        split = QueryReader.getAttribute(fieldElement, "split");
+
         if (!keyWord) {
             if (alias != null) {
                 allIndexedFieldsSet.add(alias);


Index: MMBaseEntry.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/MMBaseEntry.java,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -b -r1.35 -r1.36
--- MMBaseEntry.java    18 Aug 2008 08:24:48 -0000      1.35
+++ MMBaseEntry.java    18 Aug 2008 08:46:01 -0000      1.36
@@ -34,7 +34,7 @@
  *
  * @author Pierre van Rooden
  * @author Michiel Meeuwissen
- * @version $Id: MMBaseEntry.java,v 1.35 2008/08/18 08:24:48 michiel Exp $
+ * @version $Id: MMBaseEntry.java,v 1.36 2008/08/18 08:46:01 michiel Exp $
  **/
 public class MMBaseEntry implements IndexEntry {
     static private final Logger log = 
Logging.getLoggerInstance(MMBaseEntry.class);
@@ -54,7 +54,6 @@
     // of fields already indexed
     private final Set<String> indexed = new HashSet<String>();
 
-    private final float boost = 1.0f;
 
     MMBaseEntry(Node node, Collection<IndexFieldDefinition> fields, boolean 
multiLevel,
                 NodeManager elementManager, Step elementStep,
@@ -137,30 +136,35 @@
                        value = transformer.transform(value);
                    }
                 }
+                for (String v : value.split(fieldDefinition.split, 
"".equals(fieldDefinition.split) ? 1 : 0)) {
+                    // Trick with using the 'limit' argument of the split 
function makes sure that
+                    // split="" is equivalent to no splitting at all.
+
                 if (fieldDefinition.keyWord) {
                     if (log.isTraceEnabled()) {
-                        log.trace("add " + fieldName + " text, keyword" + 
value);
+                            log.trace("add " + fieldName + " text, keyword" + 
v);
                     }
-                     Field field = new Field(fieldName, value, 
Field.Store.YES, Field.Index.UN_TOKENIZED);
+                        Field field = new Field(fieldName, v, Field.Store.YES, 
Field.Index.UN_TOKENIZED);
                      field.setBoost(fieldDefinition.boost);
                      Indexer.addField(document, field, 
fieldDefinition.multiple);
                 } else if (fieldDefinition.storeText) {
                     if (log.isTraceEnabled()) {
                         log.trace("added " + fieldDefinition.fieldName + " to  
" + fieldName + " text, store. Boost " + fieldDefinition.boost);
                     }
-                    Field field = new Field(fieldName, value, Field.Store.YES, 
Field.Index.TOKENIZED);
+                        Field field = new Field(fieldName, v, Field.Store.YES, 
Field.Index.TOKENIZED);
                     field.setBoost(fieldDefinition.boost);
                     Indexer.addField(document, field, 
fieldDefinition.multiple);
                 } else {
                     if (log.isTraceEnabled()) {
                         log.trace("added " + fieldDefinition.fieldName + " to  
" + fieldName + " text, no store. Boost " + fieldDefinition.boost);
                     }
-                    Field field = new Field(fieldName, value, Field.Store.NO, 
Field.Index.TOKENIZED);
+                        Field field = new Field(fieldName, v, Field.Store.NO, 
Field.Index.TOKENIZED);
                     field.setBoost(fieldDefinition.boost);
                     Indexer.addField(document, field, 
fieldDefinition.multiple);
                 }
             }
         }
+        }
         if (log.isDebugEnabled()) {
             if (log.isTraceEnabled()) {
                 String t = "Indexed " + data + " --> " + document;


Index: MMBaseIndexDefinition.java
===================================================================
RCS file: 
/var/cvs/contributions/lucene/src/org/mmbase/module/lucene/MMBaseIndexDefinition.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -b -r1.25 -r1.26
--- MMBaseIndexDefinition.java  19 Mar 2008 16:25:22 -0000      1.25
+++ MMBaseIndexDefinition.java  18 Aug 2008 08:46:01 -0000      1.26
@@ -26,7 +26,7 @@
  * fields can have extra attributes specific to Lucene searching.
  *
  * @author Pierre van Rooden
- * @version $Id: MMBaseIndexDefinition.java,v 1.25 2008/03/19 16:25:22 michiel 
Exp $
+ * @version $Id: MMBaseIndexDefinition.java,v 1.26 2008/08/18 08:46:01 michiel 
Exp $
  **/
 class MMBaseIndexDefinition extends QueryDefinition implements IndexDefinition 
{
     static private final Logger log = 
Logging.getLoggerInstance(MMBaseIndexDefinition.class);
@@ -130,7 +130,8 @@
             }
             public MMBaseEntry next() {
                 Node node = nodeIterator.nextNode();
-                MMBaseEntry entry = new MMBaseEntry(node, 
(Collection<IndexFieldDefinition>) f, isMultiLevel, elementManager, 
elementStep, subQueries);
+                MMBaseEntry entry = new MMBaseEntry(node, 
(Collection<IndexFieldDefinition>) f, isMultiLevel,
+                                                    elementManager, 
elementStep, subQueries);
                 i++;
                 if (log.isServiceEnabled()) {
                     if (i % 100 == 0) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to