]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.db.layer0/src/org/simantics/db/layer0/adapter/impl/EntityInstances.java
Improvements to Lucene indexing
[simantics/platform.git] / bundles / org.simantics.db.layer0 / src / org / simantics / db / layer0 / adapter / impl / EntityInstances.java
index 07ddce7bd176e1fe2d8eca40819a0183ca3b64bf..93903fb9b2d4371e01f521eca67c55cc925d33bf 100644 (file)
@@ -119,13 +119,16 @@ public class EntityInstances implements Instances {
                 String typeName = graph.getPossibleRelatedValue(type, L0.HasName, Bindings.STRING);
                 if (typeName == null || typeName.isEmpty())
                     return null;
                 String typeName = graph.getPossibleRelatedValue(type, L0.HasName, Bindings.STRING);
                 if (typeName == null || typeName.isEmpty())
                     return null;
-                sb.append("Types:").append( IndexQueries.escape( typeName, true ) );
+                sb.append("Types:").append( IndexQueries.quoteTerm(typeName) );
             }
             if (!emptyFilter) {
                 if (sb.length() > 0)
                     sb.append(" AND ");
                 sb.append(filter);
             }
             }
             if (!emptyFilter) {
                 if (sb.length() > 0)
                     sb.append(" AND ");
                 sb.append(filter);
             }
+            if (sb.length() == 0) {
+               sb.append("*:*");
+            }
             return sb.toString();
         }
 
             return sb.toString();
         }
 
@@ -141,7 +144,8 @@ public class EntityInstances implements Instances {
 
                @Override
                public int getType() {
 
                @Override
                public int getType() {
-                       return RequestFlags.IMMEDIATE_UPDATE;
+                       // This query should not be immediate update since it takes a long time!
+                       return RequestFlags.INVALIDATE;
                }
 
     }
                }
 
     }
@@ -198,13 +202,7 @@ public class EntityInstances implements Instances {
     @Override
     public Collection<Resource> findByName(ReadGraph graph, Resource model,
             String name) throws DatabaseException {
     @Override
     public Collection<Resource> findByName(ReadGraph graph, Resource model,
             String name) throws DatabaseException {
-        Layer0 L0 = Layer0.getInstance(graph);
-       CollectionSupport coll = graph.getService(CollectionSupport.class);
-        List<Resource> results = coll.createList();
-        for(Resource match : find(graph, model, name)) {
-            if(name.equals(graph.getPossibleRelatedValue(match, L0.HasName, Bindings.STRING))) results.add(match);
-        }
-        return results;
+        return find(graph, model, IndexQueries.quoteTerm(name));
     }
 
 }
     }
 
 }