add hiddenIndexFields on buildGlobalIndex.

Project: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/commit/124003d9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/tree/124003d9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-s2graph/diff/124003d9

Branch: refs/heads/master
Commit: 124003d9b68d2ec2cd895ad99e5bb6cb6822eead
Parents: 4e085e4
Author: DO YUNG YOON <[email protected]>
Authored: Fri Jul 28 19:20:38 2017 +0900
Committer: DO YUNG YOON <[email protected]>
Committed: Fri Jul 28 19:20:38 2017 +0900

----------------------------------------------------------------------
 .../scala/org/apache/s2graph/core/Management.scala   |  9 +++++----
 .../apache/s2graph/core/index/IndexProvider.scala    |  2 ++
 .../s2graph/core/index/IndexProviderTest.scala       | 15 +++++++++++++--
 .../s2graph/core/tinkerpop/S2GraphProvider.scala     |  1 +
 .../core/tinkerpop/structure/S2GraphTest.scala       |  5 +++--
 5 files changed, 24 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/124003d9/s2core/src/main/scala/org/apache/s2graph/core/Management.scala
----------------------------------------------------------------------
diff --git a/s2core/src/main/scala/org/apache/s2graph/core/Management.scala 
b/s2core/src/main/scala/org/apache/s2graph/core/Management.scala
index 6713baf..6e2667f 100644
--- a/s2core/src/main/scala/org/apache/s2graph/core/Management.scala
+++ b/s2core/src/main/scala/org/apache/s2graph/core/Management.scala
@@ -19,12 +19,13 @@
 
 package org.apache.s2graph.core
 
-import org.apache.s2graph.core.GraphExceptions.{LabelNameTooLongException, 
InvalidHTableException, LabelAlreadyExistException, LabelNotExistException}
+import org.apache.s2graph.core.GraphExceptions.{InvalidHTableException, 
LabelAlreadyExistException, LabelNameTooLongException, LabelNotExistException}
 import org.apache.s2graph.core.Management.JsonModel.{Index, Prop}
 import org.apache.s2graph.core.mysqls._
 import org.apache.s2graph.core.types.HBaseType._
 import org.apache.s2graph.core.types._
 import org.apache.s2graph.core.JSONParser._
+import org.apache.s2graph.core.index.IndexProvider
 import org.apache.s2graph.core.utils.logger
 import play.api.libs.json.Reads._
 import play.api.libs.json._
@@ -349,10 +350,10 @@ class Management(graph: S2Graph) {
   }
 
   def buildGlobalIndex(name: String, propNames: Seq[String]): GlobalIndex = {
-    GlobalIndex.findBy(name) match {
+    GlobalIndex.findBy(name, false) match {
       case None =>
-        val idxId = GlobalIndex.insert(name, propNames)
-        GlobalIndex.findBy(name).get
+        val idxId = GlobalIndex.insert(name, propNames ++ 
IndexProvider.hiddenIndexFields)
+        GlobalIndex.findBy(name, false).get
       case Some(oldIndex) => oldIndex
     }
   }

http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/124003d9/s2core/src/main/scala/org/apache/s2graph/core/index/IndexProvider.scala
----------------------------------------------------------------------
diff --git 
a/s2core/src/main/scala/org/apache/s2graph/core/index/IndexProvider.scala 
b/s2core/src/main/scala/org/apache/s2graph/core/index/IndexProvider.scala
index 360ea65..7f2602f 100644
--- a/s2core/src/main/scala/org/apache/s2graph/core/index/IndexProvider.scala
+++ b/s2core/src/main/scala/org/apache/s2graph/core/index/IndexProvider.scala
@@ -47,6 +47,8 @@ object IndexProvider {
   val labelField = "_label_"
   val serviceField = "_service_"
   val serviceColumnField = "_serviceColumn_"
+
+  val hiddenIndexFields = Set(vidField, eidField, labelField, serviceField, 
serviceColumnField)
   val hitsPerPage = 100000
 
   def apply(config: Config): IndexProvider = {

http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/124003d9/s2core/src/test/scala/org/apache/s2graph/core/index/IndexProviderTest.scala
----------------------------------------------------------------------
diff --git 
a/s2core/src/test/scala/org/apache/s2graph/core/index/IndexProviderTest.scala 
b/s2core/src/test/scala/org/apache/s2graph/core/index/IndexProviderTest.scala
index d098458..480f7a2 100644
--- 
a/s2core/src/test/scala/org/apache/s2graph/core/index/IndexProviderTest.scala
+++ 
b/s2core/src/test/scala/org/apache/s2graph/core/index/IndexProviderTest.scala
@@ -20,11 +20,14 @@
 package org.apache.s2graph.core.index
 
 import org.apache.s2graph.core.Integrate.IntegrateCommon
-import org.apache.s2graph.core.S2Vertex
+import org.apache.s2graph.core.{Query, QueryParam, S2Vertex, Step}
 import org.apache.tinkerpop.gremlin.process.traversal.step.util.HasContainer
-import org.apache.tinkerpop.gremlin.process.traversal.P
+import org.apache.tinkerpop.gremlin.process.traversal.{Order, P}
 import org.apache.s2graph.core.mysqls._
 import org.apache.s2graph.core.types.{InnerVal, InnerValLikeWithTs}
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper
+import org.apache.tinkerpop.gremlin.structure.T
+
 import scala.collection.JavaConversions._
 
 class IndexProviderTest extends IntegrateCommon {
@@ -218,4 +221,12 @@ class IndexProviderTest extends IntegrateCommon {
     println(s"[[QueryString]: ${queryString}")
   }
 
+  test("has label") {
+    //    has("song", "name", "OH 
BOY").out("followedBy").out("followedBy").order.by("performances").by("songType",
 Order.decr)
+    val hasContainers = Seq(new HasContainer(T.label.getAccessor, 
P.eq("song")),
+                            new HasContainer("name", P.eq("OH BOY")))
+    val queryString = IndexProvider.buildQueryString(hasContainers)
+    println(s"[[QueryString]: ${queryString}")
+
+  }
 }

http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/124003d9/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/S2GraphProvider.scala
----------------------------------------------------------------------
diff --git 
a/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/S2GraphProvider.scala 
b/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/S2GraphProvider.scala
index 00768b3..3157e18 100644
--- 
a/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/S2GraphProvider.scala
+++ 
b/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/S2GraphProvider.scala
@@ -27,6 +27,7 @@ import 
org.apache.s2graph.core.GraphExceptions.LabelNotExistException
 import org.apache.s2graph.core.Management.JsonModel.Prop
 import org.apache.s2graph.core.S2Graph.{DefaultColumnName, DefaultServiceName}
 import org.apache.s2graph.core._
+import org.apache.s2graph.core.index.IndexProvider
 import org.apache.s2graph.core.mysqls.{ColumnMeta, Label, Service, 
ServiceColumn}
 import org.apache.s2graph.core.types.{HBaseType, InnerVal, VertexId}
 import org.apache.s2graph.core.utils.logger

http://git-wip-us.apache.org/repos/asf/incubator-s2graph/blob/124003d9/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/structure/S2GraphTest.scala
----------------------------------------------------------------------
diff --git 
a/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/structure/S2GraphTest.scala
 
b/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/structure/S2GraphTest.scala
index 60b48d2..badfbfe 100644
--- 
a/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/structure/S2GraphTest.scala
+++ 
b/s2core/src/test/scala/org/apache/s2graph/core/tinkerpop/structure/S2GraphTest.scala
@@ -41,7 +41,7 @@ class S2GraphTest extends FunSuite with Matchers with 
TestCommonWithModels {
   initTests()
 
   val g = new S2Graph(config)
-  lazy val gIndex = management.buildGlobalIndex("S2GraphTest", Seq("weight"))
+  lazy val gIndex = management.buildGlobalIndex("S2GraphTest2", Seq("weight"))
   def printEdges(edges: Seq[Edge]): Unit = {
     edges.foreach { edge =>
       logger.debug(s"[FetchedEdge]: $edge")
@@ -466,7 +466,8 @@ class S2GraphTest extends FunSuite with Matchers with 
TestCommonWithModels {
 
     val e12 = v6.addEdge("created", v3, "weight", Double.box(0.2))
 
-    val ls = graph.traversal().E().has("weight", P.eq(Double.box(0.5)))
+    val ls = graph.traversal().E().has("knows", "weight", 
P.eq(Double.box(0.5)))
+
 //    return graph.traversal.V().hasLabel("person").has("age", 
P.not(P.lte(10).and(P.not(P.between(11, 
20)))).and(P.lt(29).or(P.eq(35)))).values("name")
     val l = ls.toList
     println(s"[Size]: ${l.size}")

Reply via email to