Author: ito
Date: Wed May  4 14:30:43 2011
New Revision: 1099460

URL: http://svn.apache.org/viewvc?rev=1099460&view=rev
Log:
CLEREZZA-501: improved lucene indexsearcher and writer

Modified:
    
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/GraphIndexer.java
    
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/LuceneTools.java
    
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/VirtualProperty.java

Modified: 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/GraphIndexer.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/GraphIndexer.java?rev=1099460&r1=1099459&r2=1099460&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/GraphIndexer.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/GraphIndexer.java
 Wed May  4 14:30:43 2011
@@ -79,17 +79,24 @@ public class GraphIndexer extends Resour
        private Map<VirtualProperty, Set<UriRef>> property2TypeMap = new 
HashMap<VirtualProperty, Set<UriRef>>();
        private Map<UriRef, Set<VirtualProperty>> property2IncludingVProperty = 
new HashMap<UriRef, Set<VirtualProperty>>();
        ReindexThread reindexer;
+       private final GraphListener listener1;
+       private final GraphListener listener2;
 
 
        //TODO
        class ReindexThread extends Thread {
 
                Set<Resource> resourcesToProcess;
+               boolean stop = false;
 
                ReindexThread() {
                        resourcesToProcess = Collections.synchronizedSet(new 
HashSet<Resource>());
                }
 
+               void stopThread() {
+                       stop = true;
+               }
+
                @Override
                public void run() {
                        final ReindexThread that = this;
@@ -97,7 +104,8 @@ public class GraphIndexer extends Resour
 
                                @Override
                                public Object run() {
-                                       while (true) {
+                                       while (!stop) {
+//                                             System.out.println("THREAD 
running");
                                                try {
                                                        if 
(resourcesToProcess.size() < 50) {
                                                                sleep(100);
@@ -120,6 +128,7 @@ public class GraphIndexer extends Resour
 
                                                }
                                        }
+                                       return null;
                                }
                        });
                }
@@ -146,10 +155,11 @@ public class GraphIndexer extends Resour
                //TODO
                //reindexer.setDaemon(true);
 
-               baseGraph.addGraphListener(new GraphListener() {
+               listener1 = new GraphListener() {
 
                        @Override
                        public void graphChanged(List<GraphEvent> events) {
+                               System.out.println("LALALALLALALALALLALA");
                                for (GraphEvent e : events) {
                                        Triple triple = e.getTriple();
                                        logger.debug("processing addition of 
type " + triple.getObject());
@@ -160,12 +170,15 @@ public class GraphIndexer extends Resour
 
                                }
                        }
-               }, new FilterTriple(null, RDF.type, null));
+               };
 
-               baseGraph.addGraphListener(new GraphListener() {
+               baseGraph.addGraphListener(listener1, new FilterTriple(null, 
RDF.type, null));
+
+               listener2 = new GraphListener() {
 
                        @Override
                        public void graphChanged(List<GraphEvent> events) {
+                               System.out.println("LALALALLALALALALLALA2");
                                for (GraphEvent e : events) {
                                        logger.info("Triple: " + e.getTriple());
                                        Triple triple = e.getTriple();
@@ -200,20 +213,25 @@ public class GraphIndexer extends Resour
 
                                }
                        }
-               }, new FilterTriple(null, null, null) {
+               };
+
+               baseGraph.addGraphListener(listener2, new FilterTriple(null, 
null, null) {
 
                        @Override
                        public boolean match(Triple triple) {
+                               System.out.println("MATCH START");
                                UriRef predicate = triple.getPredicate();
                                //check indirectly involved properties
                                Set<VirtualProperty> vProperties = 
property2IncludingVProperty.get(predicate);
                                if (vProperties != null) {
                                        for (VirtualProperty vProperty : 
vProperties) {
                                                if 
(property2TypeMap.containsKey(vProperty)) {
+                                                       
System.out.println("MATCH TRUE");
                                                        return true;
                                                }
                                        }
                                }
+                               System.out.println("MATCH FALSE");
                                return false;
                        }
                });
@@ -226,6 +244,9 @@ public class GraphIndexer extends Resour
        }
 
        public void closeLuceneIndex() {
+               this.baseGraph.removeGraphListener(listener1);
+               this.baseGraph.removeGraphListener(listener2);
+               this.reindexer.stopThread();
                this.luceneTools.closeIndexSearcher();
                this.luceneTools.closeIndexWriter();
        }
@@ -260,7 +281,7 @@ public class GraphIndexer extends Resour
                this(definitionGraph, baseGraph, new RAMDirectory(), true);
        }
 
-       protected void processDefinitions() {
+       final protected void processDefinitions() {
 
                Iterator<Triple> indexDefinitionResources = 
this.definitionGraph.filter(null, RDF.type, CRIS.IndexDefinition);
 
@@ -403,6 +424,7 @@ public class GraphIndexer extends Resour
                IndexSearcher searcher = luceneTools.getIndexSearcher();
                TopScoreDocCollector testCollector = 
TopScoreDocCollector.create(1, true);
                try {
+                       logger.info(booleanQuery.toString());
                        searcher.search(booleanQuery, testCollector);
                } catch (IOException ex) {
                }

Modified: 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/LuceneTools.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/LuceneTools.java?rev=1099460&r1=1099459&r2=1099460&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/LuceneTools.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/LuceneTools.java
 Wed May  4 14:30:43 2011
@@ -180,11 +180,13 @@ public class LuceneTools {
         *
         */
        public void closeIndexWriter() {
+               System.out.println("H--------------------------------");
                try {
                        if(indexWriter != null) {
                                //TODO do this in an extra thread, execution 
time configurable
                                //call optimize only when necessary
                                if(!indexWriter.getReader().isOptimized()) {
+                               
System.out.println("E--------------------------------");
                                        indexWriter.optimize();
                                }
                                indexWriter.close();

Modified: 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/VirtualProperty.java
URL: 
http://svn.apache.org/viewvc/incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/VirtualProperty.java?rev=1099460&r1=1099459&r2=1099460&view=diff
==============================================================================
--- 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/VirtualProperty.java
 (original)
+++ 
incubator/clerezza/issues/CLEREZZA-501/rdf.cris/core/src/main/java/org/apache/clerezza/rdf/cris/VirtualProperty.java
 Wed May  4 14:30:43 2011
@@ -44,6 +44,14 @@ public abstract class VirtualProperty {
         */
        Set<UriRef> baseProperties;
 
+       public String getStringKey() {
+               return stringKey;
+       }
+
+       public Set<UriRef> getBaseProperties() {
+               return baseProperties;
+       }
+
        protected abstract List<String> value(GraphNode node);
        
        /**


Reply via email to