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