these actually work now
authorjohn <john>
Wed, 27 Nov 2002 15:26:52 +0000 (15:26 +0000)
committerjohn <john>
Wed, 27 Nov 2002 15:26:52 +0000 (15:26 +0000)
source/mircoders/search/AudioSearchTerm.java
source/mircoders/search/ContentSearchTerm.java [new file with mode: 0755]
source/mircoders/search/ImagesSearchTerm.java
source/mircoders/search/KeywordSearchTerm.java
source/mircoders/search/SearchTerm.java
source/mircoders/search/TextSearchTerm.java
source/mircoders/search/TopicSearchTerm.java
source/mircoders/search/UnIndexedSearchTerm.java
source/mircoders/search/UnStoredSearchTerm.java
source/mircoders/search/VideoSearchTerm.java

index 5597c49..3b24552 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
@@ -62,7 +64,7 @@ public class AudioSearchTerm extends SearchTerm{
 
   public String makeTerm(HttpServletRequest req){
     String wanted = req.getParameter(paramName);
-    if (wanted == "y"){
+    if (wanted != null && wanted.equals("y")){
       return matchField + ":" + "\"" + wanted + "\"";
     }
     else {
@@ -71,7 +73,7 @@ public class AudioSearchTerm extends SearchTerm{
   }
  
   public void returnMeta(SimpleHash result,Document doc){
-    result.put(templateVariable,doc.get(matchField));
+    result.put(templateVariable,new SimpleScalar(doc.get(matchField)));
   }
   
 
diff --git a/source/mircoders/search/ContentSearchTerm.java b/source/mircoders/search/ContentSearchTerm.java
new file mode 100755 (executable)
index 0000000..0bbc630
--- /dev/null
@@ -0,0 +1,115 @@
+/*
+ * Copyright (C) 2001, 2002  The Mir-coders group
+ *
+ * This file is part of Mir.
+ *
+ * Mir is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * Mir is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Mir; if not, write to the Free Software
+ * 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 the com.oreilly.servlet library, 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.*;
+
+import javax.servlet.*;
+import javax.servlet.http.*;
+
+import mir.entity.*;
+
+import org.apache.lucene.index.*;
+import org.apache.lucene.document.Document;
+import org.apache.lucene.document.Field;
+
+import freemarker.template.*;
+
+
+public class ContentSearchTerm extends SearchTerm{
+
+  public String templateVariable;
+  public String dataField;
+  public String matchField;
+  public String paramName;
+  public String partOfEntity;
+
+  public ContentSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
+    partOfEntity = anEntityPart;
+    paramName = aParamName;
+    matchField = aMatchField;
+    dataField = aDataField;
+    templateVariable = aTemplateVariable;
+    
+  }
+  
+  public void index(Document doc, Entity entity){
+    doc.add(Field.UnStored(matchField,entity.getValue(partOfEntity)));
+  }
+
+  public void indexValue(Document doc, String value){
+    doc.add(Field.UnStored(matchField, value));
+  }
+
+
+  public String makeTerm(HttpServletRequest req){
+      String wanted = req.getParameter(paramName);
+      if (wanted != null && !(wanted.equals(""))){
+       String searchBoolean = req.getParameter("search_boolean");
+       if (searchBoolean != null && searchBoolean.equals("phrase")){
+         return matchField + ":" + "\"" + wanted + "\"";
+       }
+       else {
+         if (searchBoolean != null && searchBoolean.equals("and")){
+           StringTokenizer st = new StringTokenizer(wanted); 
+           String composite = "(";
+           while (st.hasMoreTokens()) { 
+             composite = composite + " +" + st.nextToken(); 
+           }
+           composite = composite + ")";
+           return composite;
+         }
+         else {
+           //default to or
+           StringTokenizer st = new StringTokenizer(wanted); 
+           String composite = "(";
+           while (st.hasMoreTokens()) { 
+             composite = composite + " " + st.nextToken(); 
+           }
+           composite = composite + ")";
+           return composite;
+         }
+       }
+      }
+      else {
+       return null;
+      }
+  }
+
+  public void returnMeta(SimpleHash result,Document doc){
+    return;
+  }
+  
+
+}
+
+
index 2f5b4c6..0b2ca05 100755 (executable)
@@ -75,8 +75,8 @@ public class ImagesSearchTerm extends SearchTerm{
 
   public String makeTerm(HttpServletRequest req){
     String wanted = req.getParameter(paramName);
-    if (wanted == "y"){
-      return matchField + ":" + "\"" + wanted + "\"";
+    if (wanted != null && wanted.equals("y")){
+      return matchField + ":y";
     }
     else {
       return null;
index 080c037..384b3fa 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
@@ -45,8 +47,20 @@ import freemarker.template.*;
 
 public class KeywordSearchTerm extends SearchTerm{
   
+  public String templateVariable;
+  public String dataField;
+  public String matchField;
+  public String paramName;
+  public String partOfEntity;
+
+  
   public KeywordSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
-    super(anEntityPart,aParamName,aMatchField,aDataField,aTemplateVariable);
+    partOfEntity = anEntityPart;
+    paramName = aParamName;
+    matchField = aMatchField;
+    dataField = aDataField;
+    templateVariable = aTemplateVariable;
   }
   
 
@@ -61,7 +75,7 @@ public class KeywordSearchTerm extends SearchTerm{
 
   public String makeTerm(HttpServletRequest req){
       String wanted = req.getParameter(paramName);
-      if (wanted != null && wanted != ""){
+      if (wanted != null && !(wanted.equals(""))){
        return matchField + ":" + "\"" + wanted + "\"";
       }
       else {
@@ -69,7 +83,7 @@ public class KeywordSearchTerm extends SearchTerm{
       }
   }
   public void returnMeta(SimpleHash result,Document doc){
-    result.put(templateVariable,doc.get(dataField)); 
+    result.put(templateVariable,new SimpleScalar(doc.get(dataField))); 
   }
   
 
index ad43ee8..4f14f6c 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
index 275d4e8..b461a19 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
@@ -44,9 +46,20 @@ import freemarker.template.*;
 
 
 public class TextSearchTerm extends SearchTerm{
-  
+
+  public String templateVariable;
+  public String dataField;
+  public String matchField;
+  public String paramName;
+  public String partOfEntity;
+
   public TextSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
-    super(anEntityPart,aParamName,aMatchField,aDataField,aTemplateVariable);
+    partOfEntity = anEntityPart;
+    paramName = aParamName;
+    matchField = aMatchField;
+    dataField = aDataField;
+    templateVariable = aTemplateVariable;
+    
   }
   
   public void index(Document doc, Entity entity){
@@ -60,7 +73,7 @@ public class TextSearchTerm extends SearchTerm{
 
   public String makeTerm(HttpServletRequest req){
       String wanted = req.getParameter(paramName);
-      if (wanted != null && wanted != ""){
+      if (wanted != null && !(wanted.equals(""))){
        return matchField + ":" + "\"" + wanted + "\"";
       }
       else {
@@ -68,7 +81,7 @@ public class TextSearchTerm extends SearchTerm{
       }
   }
   public void returnMeta(SimpleHash result,Document doc){
-    result.put(templateVariable,doc.get(dataField)); 
+    result.put(templateVariable,new SimpleScalar(doc.get(dataField))); 
   }
   
 
index 7f29d72..e5e66e0 100755 (executable)
@@ -64,7 +64,7 @@ public class TopicSearchTerm extends SearchTerm{
   }
   public String makeTerm(HttpServletRequest req){
     String wanted = req.getParameter(paramName);
-    if (wanted != null && wanted != ""){
+    if (wanted != null && !(wanted.equals(""))){
       return matchField + ":" + "\"" + wanted + "\"";
     }
     else {
index 07da68c..bcc2a14 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
@@ -44,9 +46,19 @@ import freemarker.template.*;
 
 
 public class UnIndexedSearchTerm extends SearchTerm{
+  
+  public String templateVariable;
+  public String dataField;
+  public String matchField;
+  public String paramName;
+  public String partOfEntity;
 
   public UnIndexedSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
-    super(anEntityPart,aParamName,aMatchField,aDataField,aTemplateVariable);
+    partOfEntity = anEntityPart;
+    paramName = aParamName;
+    matchField = aMatchField;
+    dataField =  aDataField;
+    templateVariable = aTemplateVariable;
   }
   
 
@@ -63,12 +75,10 @@ public class UnIndexedSearchTerm extends SearchTerm{
     // it isn't indexed!       
     return null;
   }
-    
+
   public void returnMeta(SimpleHash result,Document doc){
-    result.put(templateVariable,doc.get(dataField)); 
+    result.put(templateVariable,new SimpleScalar(doc.get(dataField))); 
   }
-  
-
 }
 
 
index 6cfcc5f..cafd3bb 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
@@ -44,9 +46,20 @@ import freemarker.template.*;
 
 
 public class UnStoredSearchTerm extends SearchTerm{
+
+  public String templateVariable;
+  public String dataField;
+  public String matchField;
+  public String paramName;
+  public String partOfEntity;
+
   
   public UnStoredSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
-    super(anEntityPart,aParamName,aMatchField,aDataField,aTemplateVariable);
+      partOfEntity = anEntityPart;
+      paramName = aParamName;
+      matchField = aMatchField;
+      dataField = aDataField;
+      templateVariable = aTemplateVariable;
   }
   
   
@@ -60,7 +73,7 @@ public class UnStoredSearchTerm extends SearchTerm{
     
   public String makeTerm(HttpServletRequest req){
       String wanted = req.getParameter(paramName);
-      if (wanted != null && wanted != ""){
+      if (wanted != null && !(wanted.equals(""))){
        return matchField + ":" + "\"" + wanted + "\"";
       }
       else {
@@ -68,7 +81,7 @@ public class UnStoredSearchTerm extends SearchTerm{
       }
   }
   public void returnMeta(SimpleHash result,Document doc){
-      //do nothing...we don't have the data stored!
+    return;
   }
   
 
index 3b01ed1..21a0ead 100755 (executable)
@@ -31,6 +31,8 @@
 
 package mircoders.search;
 
+import java.util.*;
+
 import javax.servlet.*;
 import javax.servlet.http.*;
 
@@ -62,7 +64,7 @@ public class VideoSearchTerm extends SearchTerm{
 
   public String makeTerm(HttpServletRequest req){
     String wanted = req.getParameter(paramName);
-    if (wanted == "y"){
+    if (wanted != null && wanted.equals("y")){
       return matchField + ":" + "\"" + wanted + "\"";
     }
     else {
@@ -71,7 +73,7 @@ public class VideoSearchTerm extends SearchTerm{
   }
  
   public void returnMeta(SimpleHash result,Document doc){
-    result.put(templateVariable,doc.get(matchField));
+    result.put(templateVariable,new SimpleScalar(doc.get(matchField)));
   }