* 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.
*/
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{
* 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.
*/
public class ContentSearchTerm extends SearchTerm{
+ protected ContentSearchTerm() {
+ }
public ContentSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
partOfEntity = anEntityPart;
* 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;
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){
}
doc.add(Field.UnIndexed("images",imageURLString));
}
-
-
}
public String makeTerm(HttpServletRequest req){
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);
}
* 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.
*/
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{
}
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);
+ }
}
}
}
* 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.
*/
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;
}
* 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;
public class TextSearchTerm extends SearchTerm{
-
-
public TextSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
partOfEntity = anEntityPart;
paramName = aParamName;
* 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;
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{
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++){
* 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;
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{
* 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;
public class UnIndexedSearchTerm extends SearchTerm{
-
-
public UnIndexedSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
partOfEntity = anEntityPart;
paramName = aParamName;
templateVariable = aTemplateVariable;
}
-
public void index(Document doc, Entity entity){
doc.add(Field.Text(dataField,entity.getValue(partOfEntity)));
}
doc.add(Field.Text(dataField, value));
}
-
public String makeTerm(HttpServletRequest req){
// it isn't indexed!
return null;
* 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;
public class UnStoredSearchTerm extends SearchTerm{
-
-
public UnStoredSearchTerm(String anEntityPart,String aParamName,String aMatchField,String aDataField, String aTemplateVariable){
partOfEntity = anEntityPart;
paramName = aParamName;
templateVariable = aTemplateVariable;
}
-
public void index(Document doc, Entity entity){
doc.add(Field.UnStored(matchField,entity.getValue(partOfEntity)));
}
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 {