bugfix for search
authorzapata <zapata>
Sat, 10 Jan 2004 00:58:14 +0000 (00:58 +0000)
committerzapata <zapata>
Sat, 10 Jan 2004 00:58:14 +0000 (00:58 +0000)
12 files changed:
source/mircoders/search/AudioSearchTerm.java
source/mircoders/search/ContentSearchTerm.java
source/mircoders/search/ImagesSearchTerm.java
source/mircoders/search/IndexUtil.java
source/mircoders/search/MediaSearchTerm.java
source/mircoders/search/SearchTerm.java
source/mircoders/search/TextSearchTerm.java
source/mircoders/search/TopicMatrixSearchTerm.java
source/mircoders/search/TopicSearchTerm.java
source/mircoders/search/UnIndexedSearchTerm.java
source/mircoders/search/UnStoredSearchTerm.java
source/mircoders/search/VideoSearchTerm.java

index f43e12a..95d83d3 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 
@@ -44,11 +44,8 @@ import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 
 public class AudioSearchTerm extends SearchTerm{
-
-  static {
-    matchField       = "hasAudio";
-    paramName        = "search_hasAudio";
-    templateVariable = "hasAudio";    
+  public AudioSearchTerm() {
+    super(null, "search_hasAudio", "hasAudio", null, "hasAudio");
   }
 
   public void index(Document doc, Entity entity) throws StorageObjectFailure{
index d349c24..636d1ec 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 
@@ -42,6 +42,8 @@ import org.apache.lucene.document.Field;
 
 
 public class ContentSearchTerm extends SearchTerm{
+  protected ContentSearchTerm() {
+  }
 
   public ContentSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
     partOfEntity = anEntityPart;
index 0a411d7..4039373 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 
 package mircoders.search;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.StringTokenizer;
-import java.util.Vector;
-
 import javax.servlet.http.HttpServletRequest;
 
 import mir.entity.Entity;
@@ -42,20 +41,15 @@ import mir.entity.EntityList;
 import mir.storage.StorageObjectFailure;
 import mircoders.entity.EntityContent;
 import mircoders.storage.DatabaseContentToMedia;
-
 import org.apache.lucene.document.Document;
 import org.apache.lucene.document.Field;
 
 
 public class ImagesSearchTerm extends SearchTerm{
-
-  static {
-    matchField       = "hasImages";
-    paramName        = "search_hasImages";
-    dataField        = "images";
-    templateVariable = "images";
+  public ImagesSearchTerm() {
+    super (null, "search_hasImages", "hasImages", "images", "images");
   }
-  
+
   public void index(Document doc, Entity entity) throws StorageObjectFailure{
     EntityList images = DatabaseContentToMedia.getInstance().getImages((EntityContent) entity);
     if (images != null && images.size()>0){
@@ -69,8 +63,6 @@ public class ImagesSearchTerm extends SearchTerm{
       }
       doc.add(Field.UnIndexed("images",imageURLString));
     }
-
-
   }
 
   public String makeTerm(HttpServletRequest req){
@@ -85,15 +77,15 @@ public class ImagesSearchTerm extends SearchTerm{
 
   public void returnMeta(Map result,Document doc){
     String imageURLString=doc.get(dataField);
+    List theImages = new ArrayList();
     if (imageURLString != null){
-      List theImages = new Vector();
       StringTokenizer st = new StringTokenizer(imageURLString,":");
       while (st.hasMoreTokens()) {
         String imageURL=st.nextToken();
         theImages.add(imageURL);
       }
-      result.put(templateVariable,theImages);
     }
+    result.put(templateVariable,theImages);
   }
 
 
index 90d52c0..68194bc 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 
@@ -32,35 +32,16 @@ package mircoders.search;
 
 import java.io.IOException;
 
-import mircoders.entity.EntityContent;
-
 import org.apache.lucene.index.IndexReader;
 import org.apache.lucene.index.Term;
 import org.apache.lucene.store.FSDirectory;
-
+import mircoders.entity.EntityContent;
 
 public class IndexUtil {
-  public static void unindexEntity (EntityContent entity,String index) throws IOException{
-    IndexReader indexReader = null;
-    try{
-      indexReader = IndexReader.open(index);
-      indexReader.delete(new Term("id",entity.getValue("id")));
-      indexReader.close();
-    }
-    catch(Exception e){
-      if (indexReader != null){
-       indexReader.close();
-      }
-    }
-    finally { 
-      if (indexReader != null){
-       FSDirectory theIndexDir=FSDirectory.getDirectory(index,false);
-       if (IndexReader.isLocked(theIndexDir)){
-         IndexReader.unlock(theIndexDir);
-       }
-      }
-    }
+  public static void unindexEntity (EntityContent anEntity, String anIndex) throws IOException{
+    unindexID(anEntity.getId(), anIndex);
   }
+
   public static void unindexID (String id,String index) throws IOException{
     IndexReader indexReader = null;
     try{
@@ -70,15 +51,15 @@ public class IndexUtil {
     }
     catch(Exception e){
       if (indexReader != null){
-       indexReader.close();
+        indexReader.close();
       }
     }
-    finally { 
+    finally {
       if (indexReader != null){
-       FSDirectory theIndexDir=FSDirectory.getDirectory(index,false);
-       if (IndexReader.isLocked(theIndexDir)){
-         IndexReader.unlock(theIndexDir);
-       }
+        FSDirectory theIndexDir=FSDirectory.getDirectory(index,false);
+        if (IndexReader.isLocked(theIndexDir)){
+          IndexReader.unlock(theIndexDir);
+        }
       }
     }
   }
index 087c725..7d16cd2 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 
@@ -41,15 +41,12 @@ import org.apache.lucene.document.Document;
 
 
 public class MediaSearchTerm extends SearchTerm{
-  
-  static {
-    matchField       = "";
-    paramName        = "search_hasMedia";
-    templateVariable = "";
+  public MediaSearchTerm() {
+    super(null, "search_hasMedia", "", null, "");
   }
 
   public void index(Document doc, Entity entity) throws StorageObjectFailure{
-    // only use this term for doing alternate queries on media 
+    // only use this term for doing alternate queries on media
     return;
   }
 
index ed79f14..6ed5079 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 
 package mircoders.search;
 
 import java.util.Map;
-
 import javax.servlet.http.HttpServletRequest;
-
 import mir.entity.Entity;
-
 import org.apache.lucene.document.Document;
 
 
 abstract public class SearchTerm {
+  protected String  partOfEntity;
+  protected String  paramName;
+  protected String  matchField;
+  protected String  dataField;
+  protected String  templateVariable;
 
-  public static String  partOfEntity;
-  public static String  paramName;
-  public static String  matchField;
-  public static String  dataField;
-  public static String  templateVariable;
-
-  public SearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
+  public SearchTerm(String anEntityPart, String aParamName, String aMatchField, String aDataField, String aTemplateVariable){
     //for more reusable SearchTerm types
     partOfEntity     = anEntityPart;
     paramName        = aParamName;
index bb8b116..9f4e433 100755 (executable)
@@ -41,8 +41,6 @@ import org.apache.lucene.document.Field;
 
 
 public class TextSearchTerm extends SearchTerm{
-
-
   public TextSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
     partOfEntity = anEntityPart;
     paramName = aParamName;
index acc99fb..f02d9e4 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 package mircoders.search;
@@ -44,10 +44,8 @@ import org.apache.lucene.document.Field;
 
 
 public class TopicMatrixSearchTerm extends SearchTerm{
-
-  static {
-    matchField       = "topic";
-    paramName        = "search_topicmatrix"; 
+  public TopicMatrixSearchTerm() {
+    super(null, "search_topicmatrix", "topic", null, null);
   }
 
   public void index(Document doc, Entity entity) throws StorageObjectFailure{
@@ -63,7 +61,7 @@ public class TopicMatrixSearchTerm extends SearchTerm{
     String queryTerm = "";
     for (int x=0;x<10;x++){
       String[] values = req.getParameterValues("search_topicmatrix_"+Integer.toString(x));
-      
+
       if (values != null && values.length > 0){
        String subqueryTerm = "(";
          for (int i=0;i<values.length;i++){
index 39fa7d0..398a4bc 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 package mircoders.search;
@@ -44,10 +44,8 @@ import org.apache.lucene.document.Field;
 
 
 public class TopicSearchTerm extends SearchTerm{
-
-  static {
-    matchField       = "topic";
-    paramName        = "search_topic";
+  public TopicSearchTerm() {
+    super(null, "search_topic", "topic", null, null);
   }
 
   public void index(Document doc, Entity entity) throws StorageObjectFailure{
index b814f18..d835e3e 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 package mircoders.search;
@@ -41,8 +41,6 @@ import org.apache.lucene.document.Field;
 
 
 public class UnIndexedSearchTerm extends SearchTerm{
-
-
   public UnIndexedSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
     partOfEntity = anEntityPart;
     paramName = aParamName;
@@ -51,7 +49,6 @@ public class UnIndexedSearchTerm extends SearchTerm{
     templateVariable = aTemplateVariable;
   }
 
-
   public void index(Document doc, Entity entity){
     doc.add(Field.Text(dataField,entity.getValue(partOfEntity)));
   }
@@ -60,7 +57,6 @@ public class UnIndexedSearchTerm extends SearchTerm{
     doc.add(Field.Text(dataField, value));
   }
 
-
   public String makeTerm(HttpServletRequest req){
     // it isn't indexed!
     return null;
index 9c5fd73..fcd2d79 100755 (executable)
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * In addition, as a special exception, The Mir-coders gives permission to link
- * the code of this program with  any library licensed under the Apache Software License, 
- * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library 
- * (or with modified versions of the above that use the same license as the above), 
- * and distribute linked combinations including the two.  You must obey the 
- * GNU General Public License in all respects for all of the code used other than 
- * the above mentioned libraries.  If you modify this file, you may extend this 
- * exception to your version of the file, but you are not obligated to do so.  
+ * the code of this program with  any library licensed under the Apache Software License,
+ * The Sun (tm) Java Advanced Imaging library (JAI), The Sun JIMI library
+ * (or with modified versions of the above that use the same license as the above),
+ * and distribute linked combinations including the two.  You must obey the
+ * GNU General Public License in all respects for all of the code used other than
+ * the above mentioned libraries.  If you modify this file, you may extend this
+ * exception to your version of the file, but you are not obligated to do so.
  * If you do not wish to do so, delete this exception statement from your version.
  */
 package mircoders.search;
@@ -40,8 +40,6 @@ import org.apache.lucene.document.Field;
 
 
 public class UnStoredSearchTerm extends SearchTerm{
-
-
   public UnStoredSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
       partOfEntity = anEntityPart;
       paramName = aParamName;
@@ -50,7 +48,6 @@ public class UnStoredSearchTerm extends SearchTerm{
       templateVariable = aTemplateVariable;
   }
 
-
   public void index(Document doc, Entity entity){
     doc.add(Field.UnStored(matchField,entity.getValue(partOfEntity)));
   }
index 8dcac1b..3aff976 100755 (executable)
@@ -41,10 +41,8 @@ import javax.servlet.http.HttpServletRequest;
 
 
 public class VideoSearchTerm extends SearchTerm {
-  static {
-    matchField = "hasVideo";
-    paramName = "search_hasVideo";
-    templateVariable = "hasVideo";
+  public VideoSearchTerm() {
+    super(null, "search_hasVideo", "hasVideo", null, "hasVideo");
   }
 
   public void index(Document doc, Entity entity) throws StorageObjectFailure {