You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@usergrid.apache.org by sf...@apache.org on 2014/09/24 17:58:12 UTC
git commit: adding type prefixing
Repository: incubator-usergrid
Updated Branches:
refs/heads/two-dot-o-candidate-serialization e0f7b490a -> 2e4fc1559
adding type prefixing
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/2e4fc155
Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/2e4fc155
Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/2e4fc155
Branch: refs/heads/two-dot-o-candidate-serialization
Commit: 2e4fc15598378bba7b2aa00e1510f7982939aa48
Parents: e0f7b49
Author: Shawn Feldman <sf...@apache.org>
Authored: Wed Sep 24 09:57:54 2014 -0600
Committer: Shawn Feldman <sf...@apache.org>
Committed: Wed Sep 24 09:57:54 2014 -0600
----------------------------------------------------------------------
.../index/impl/EsEntityIndexImpl.java | 47 ++++++++++++++------
.../persistence/index/impl/EsQueryVistor.java | 10 ++---
.../index/impl/EntityIndexMapUtils.java | 4 +-
3 files changed, 38 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/2e4fc155/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
index 9c27c85..d309d60 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsEntityIndexImpl.java
@@ -101,8 +101,8 @@ public class EsEntityIndexImpl implements EntityIndex {
private final AtomicLong indexedCount = new AtomicLong(0L);
private final AtomicDouble averageIndexTime = new AtomicDouble(0);
- public static final String ANALYZED_SUFFIX = "_ug_analyzed";
- public static final String GEO_SUFFIX = "_ug_geo";
+ public static final String ANALYZED_PREFIX = "ug_analyzed_s";
+ public static final String GEO_SUFFIX = "location";
// public static final String COLLECTION_SCOPE_FIELDNAME = "zzz__collectionscope__zzz";
public static final String ENTITYID_FIELDNAME = "zzz_entityid_zzz";
@@ -476,19 +476,21 @@ public class EsEntityIndexImpl implements EntityIndex {
Map<String, Object> entityMap = new HashMap<String, Object>();
+
+
for (Object f : entity.getFields().toArray()) {
Field field = (Field) f;
if (f instanceof ListField) {
List list = (List) field.getValue();
- entityMap.put(field.getName().toLowerCase(),
+ entityMap.put(Types.LIST.PREFIX+field.getName().toLowerCase(),
new ArrayList(processCollectionForMap(list)));
if ( !list.isEmpty() ) {
if ( list.get(0) instanceof String ) {
Joiner joiner = Joiner.on(" ").skipNulls();
String joined = joiner.join(list);
- entityMap.put(field.getName().toLowerCase() + ANALYZED_SUFFIX,
+ entityMap.put(Types.STRING.PREFIX+ ANALYZED_PREFIX +field.getName().toLowerCase(),
new ArrayList(processCollectionForMap(list)));
}
@@ -496,23 +498,23 @@ public class EsEntityIndexImpl implements EntityIndex {
} else if (f instanceof ArrayField) {
List list = (List) field.getValue();
- entityMap.put(field.getName().toLowerCase(),
+ entityMap.put(Types.ARRAY.PREFIX+field.getName().toLowerCase(),
new ArrayList(processCollectionForMap(list)));
} else if (f instanceof SetField) {
Set set = (Set) field.getValue();
- entityMap.put(field.getName().toLowerCase(),
+ entityMap.put(Types.SET.PREFIX+field.getName().toLowerCase(),
new ArrayList(processCollectionForMap(set)));
} else if (f instanceof EntityObjectField) {
EntityObject eo = (EntityObject)field.getValue();
- entityMap.put(field.getName().toLowerCase(), entityToMap(eo)); // recursion
+ entityMap.put(Types.OBJECT.PREFIX+field.getName().toLowerCase(), entityToMap(eo)); // recursion
} else if (f instanceof StringField) {
// index in lower case because Usergrid queries are case insensitive
- entityMap.put(field.getName().toLowerCase(), ((String) field.getValue()).toLowerCase());
- entityMap.put(field.getName().toLowerCase() + ANALYZED_SUFFIX, ((String) field.getValue()).toLowerCase());
+ entityMap.put(Types.STRING.PREFIX+field.getName().toLowerCase(), ((String) field.getValue()).toLowerCase());
+ entityMap.put(Types.STRING.PREFIX+ ANALYZED_PREFIX +field.getName().toLowerCase(), ((String) field.getValue()).toLowerCase());
} else if (f instanceof LocationField) {
LocationField locField = (LocationField) f;
@@ -521,10 +523,10 @@ public class EsEntityIndexImpl implements EntityIndex {
// field names lat and lon trigger ElasticSearch geo location
locMap.put("lat", locField.getValue().getLatitude());
locMap.put("lon", locField.getValue().getLongtitude());
- entityMap.put(field.getName().toLowerCase() + GEO_SUFFIX, locMap);
+ entityMap.put(Types.LOCATION.PREFIX+field.getName().toLowerCase(), locMap);
} else {
- entityMap.put(field.getName().toLowerCase(), field.getValue());
+ entityMap.put(Types.PRIMITIVE.PREFIX+field.getName().toLowerCase(), field.getValue());
}
}
@@ -587,7 +589,7 @@ public class EsEntityIndexImpl implements EntityIndex {
// any string with field name that ends with _ug_analyzed gets analyzed
.startObject()
.startObject("template_1")
- .field("match", "*" + ANALYZED_SUFFIX)
+ .field("match", Types.STRING.PREFIX + ANALYZED_PREFIX +"*")
.field("match_mapping_type", "string")
.startObject("mapping")
.field("type", "string")
@@ -599,7 +601,7 @@ public class EsEntityIndexImpl implements EntityIndex {
// all other strings are not analyzed
.startObject()
.startObject("template_2")
- .field("match", "*")
+ .field("match", Types.STRING.PREFIX + "*")
.field("match_mapping_type", "string")
.startObject("mapping")
.field("type", "string")
@@ -611,7 +613,7 @@ public class EsEntityIndexImpl implements EntityIndex {
// fields location_ug_geo get geo-indexed
.startObject()
.startObject("template_3")
- .field("match", "location" + GEO_SUFFIX)
+ .field("match", Types.LOCATION + "*")
.startObject("mapping")
.field("type", "geo_point")
.endObject()
@@ -638,5 +640,22 @@ public class EsEntityIndexImpl implements EntityIndex {
CandidateResults results = search( query );
return results;
}
+ public static enum Types{
+ STRING("s"),
+ LIST("l"),
+ LOCATION("loc"),
+ ARRAY("a"),
+ SET("set"),
+ OBJECT("o"),
+ PRIMITIVE("p");
+
+ public final String PREFIX;
+
+
+ Types(String prefix) {
+ this.PREFIX = prefix+"_";
+ }
+ }
+
}
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/2e4fc155/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
index 21e7b1a..84b8eeb 100644
--- a/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
+++ b/stack/corepersistence/queryindex/src/main/java/org/apache/usergrid/persistence/index/impl/EsQueryVistor.java
@@ -149,16 +149,12 @@ public class EsQueryVistor implements QueryVisitor {
public void visit( WithinOperand op ) {
String name = op.getProperty().getValue();
- name = name.toLowerCase();
+ name = EsEntityIndexImpl.Types.LOCATION.PREFIX+ name.toLowerCase() ;
float lat = op.getLatitude().getFloatValue();
float lon = op.getLongitude().getFloatValue();
float distance = op.getDistance().getFloatValue();
- if ( !name.endsWith( EsEntityIndexImpl.GEO_SUFFIX )) {
- name += EsEntityIndexImpl.GEO_SUFFIX;
- }
-
FilterBuilder fb = FilterBuilders.geoDistanceFilter( name )
.lat( lat ).lon( lon ).distance( distance, DistanceUnit.METERS );
filterBuilders.add( fb );
@@ -231,10 +227,10 @@ public class EsQueryVistor implements QueryVisitor {
}
private String addAnayzedSuffix( String name ) {
- if ( name.endsWith(EsEntityIndexImpl.ANALYZED_SUFFIX) ) {
+ if ( name.endsWith(EsEntityIndexImpl.ANALYZED_PREFIX) ) {
return name;
}
- return name + EsEntityIndexImpl.ANALYZED_SUFFIX;
+ return name + EsEntityIndexImpl.ANALYZED_PREFIX;
}
@Override
http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/2e4fc155/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexMapUtils.java
----------------------------------------------------------------------
diff --git a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexMapUtils.java b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexMapUtils.java
index 261809c..4f5ab88 100644
--- a/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexMapUtils.java
+++ b/stack/corepersistence/queryindex/src/test/java/org/apache/usergrid/persistence/index/impl/EntityIndexMapUtils.java
@@ -51,7 +51,7 @@ import org.apache.usergrid.persistence.model.field.value.Location;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
-import static org.apache.usergrid.persistence.index.impl.EsEntityIndexImpl.ANALYZED_SUFFIX;
+import static org.apache.usergrid.persistence.index.impl.EsEntityIndexImpl.ANALYZED_PREFIX;
import static org.apache.usergrid.persistence.index.impl.EsEntityIndexImpl.GEO_SUFFIX;
@@ -241,7 +241,7 @@ class EntityIndexMapUtils {
} else if (f instanceof StringField) {
entityMap.put(field.getName(), ((String) field.getValue()).toLowerCase());
- entityMap.put(field.getName() + ANALYZED_SUFFIX, field.getValue());
+ entityMap.put(field.getName() + ANALYZED_PREFIX, field.getValue());
} else if (f instanceof LocationField) {
LocationField locField = (LocationField) f;