Author: pierre
Date: 2010-03-23 15:23:08 +0100 (Tue, 23 Mar 2010)
New Revision: 41573
Modified:
mmbase/branches/MMBase-1_9/contributions/lucene/src/main/java/org/mmbase/module/lucene/MMBaseEntry.java
Log:
rollback fix for LUCENE-22 as this caused fields to not be indexed for certain
queries
Modified:
mmbase/branches/MMBase-1_9/contributions/lucene/src/main/java/org/mmbase/module/lucene/MMBaseEntry.java
===================================================================
---
mmbase/branches/MMBase-1_9/contributions/lucene/src/main/java/org/mmbase/module/lucene/MMBaseEntry.java
2010-03-23 14:12:07 UTC (rev 41572)
+++
mmbase/branches/MMBase-1_9/contributions/lucene/src/main/java/org/mmbase/module/lucene/MMBaseEntry.java
2010-03-23 14:23:08 UTC (rev 41573)
@@ -76,42 +76,23 @@
return getIdentifier();
}
- /**
- * Adds the standard keys 'number', 'owner', 'builder' and returns a set
of the steps which still needs adding to the
- * document. The set contains 'null' if this is not a multilevel or the
main step needs adding.
- */
- protected Set<String> addStandardKeys(Document document) {
-
+ protected void addStandardKeys(Document document) {
log.debug("Adding standard keys");
// always add the 'element' number first, because that ensures that
document.get("number") returns 'the' node
- final String id = getIdentifier();
- boolean elementAdded = false;
- if (! Arrays.asList(document.getValues("number")).contains(id)) {
- document.add(new Field("number", id, Field.Store.YES,
Field.Index.NOT_ANALYZED));
- elementAdded = true;
- }
- final Set<String> result = new HashSet<String>();
-
+ String id = getIdentifier();
+ document.add(new Field("number", id, Field.Store.YES,
Field.Index.NOT_ANALYZED));
if (multiLevel) {
document.add(new Field("builder", elementManager.getName(),
Field.Store.YES, Field.Index.NOT_ANALYZED)); // keyword
- log.debug("added builder as " + elementManager.getName() + " now
checking " + node.getNodeManager().getFields());
- for (org.mmbase.bridge.Field field :
node.getNodeManager().getFields()) {
- if (field.getName().indexOf(".") >= 0 ) {
- continue;
- }
-
+ log.debug("added builder as " + elementManager.getName());
+ //for (org.mmbase.bridge.Field field :
node.getNodeManager().getFields()) {
+ for (FieldIterator i =
node.getNodeManager().getFields().fieldIterator(); i.hasNext();) {
+ org.mmbase.bridge.Field field = i.nextField();
+ if (field.getName().indexOf(".") >= 0 ) continue;
+ if (id.equals(field.getName())) continue; // was added already
try {
Node subNode = node.getNodeValue(field.getName());
- String number = "" + subNode.getNumber();
- if ((elementAdded && number.equals(id)) ||
-
(!Arrays.asList(document.getValues("number")).contains(number))) {
- document.add(new Field("number", "" +
subNode.getNumber(), Field.Store.YES, Field.Index.NOT_ANALYZED)); // keyword
- document.add(new Field("owner",
subNode.getStringValue("owner"), Field.Store.YES, Field.Index.NOT_ANALYZED));
- result.add(field.getName());
- } else {
- log.debug("Ignoring " + field.getName() + " because
already indexed for this document");
- // ignore
- }
+ document.add(new Field("number", "" + subNode.getNumber(),
Field.Store.YES, Field.Index.NOT_ANALYZED)); // keyword
+ document.add(new Field("owner",
subNode.getStringValue("owner"), Field.Store.YES, Field.Index.NOT_ANALYZED));
} catch (Exception e) {
log.warn("Failed to load " + field.getName() + "from " +
node + " as a node value, continuing...");
}
@@ -120,44 +101,21 @@
document.add(new Field("builder",
node.getNodeManager().getName(), Field.Store.YES,
Field.Index.NOT_ANALYZED)); // keyword
log.debug("added builder as " + node.getNodeManager().getName());
document.add(new Field("owner", node.getStringValue("owner"),
Field.Store.YES, Field.Index.NOT_ANALYZED));
- result.add(null);
}
- return result;
-
}
public void index(Document document) {
- final Map<String, Object> data = new HashMap<String, Object>();
+ Map<String, Object> data = new HashMap<String, Object>();
if (log.isTraceEnabled()) {
- log.trace("Indexing " + getIdentifier() + " (" +
node.getNodeManager().getName() + ")");
+ log.trace("Indexing " + getIdentifier() + "(" +
node.getNodeManager().getName() + ")");
}
storeData(data);
- Set<String> prefixes = addStandardKeys(document);
- if (log.isDebugEnabled()) {
- log.debug("Found prefixes " + prefixes + " data " + data);
- }
+ addStandardKeys(document);
for (IndexFieldDefinition fieldDefinition : fields) {
String fieldName = fieldDefinition.alias;
- if (fieldName == null) {
- fieldName = fieldDefinition.fieldName;
- }
- {
- String[] fieldNameParts =
fieldDefinition.fieldName.split("\\.", 2);
- if (fieldNameParts.length == 1) {
- if (!prefixes.contains(null)) {
- log.debug("Skipping fields " +
fieldDefinition.fieldName + " (" + fieldName + ")");
- continue;
- }
- } else {
- if (!prefixes.contains(fieldNameParts[0])) {
- log.debug("Skipping fields " +
fieldDefinition.fieldName + " (" + fieldName + ")");
- continue;
- }
- }
- }
- log.debug(fieldName);
+ if (fieldName == null) fieldName = fieldDefinition.fieldName;
if (document.getField(fieldName) == null ||
!fieldDefinition.keyWord) {
String value = getFieldDataAsString(data, fieldName);
if (fieldDefinition.escaper != null) {
@@ -267,14 +225,11 @@
*/
@SuppressWarnings("fallthrough")
protected void storeData(Map<String, Object> map) {
-
Cloud cloud = elementManager.getCloud();
for (IndexFieldDefinition fieldDefinition : fields) {
String fieldName = fieldDefinition.fieldName;
String alias = fieldDefinition.alias;
- if (alias == null) {
- alias = fieldDefinition.fieldName;
- }
+ if (alias == null) alias = fieldDefinition.fieldName;
String decryptionPassword = fieldDefinition.decryptionPassword;
if (shouldIndex(fieldDefinition)) {
// some hackery
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs