X-Git-Url: http://erislabs.net/gitweb/?a=blobdiff_plain;f=source%2Fmircoders%2Fsearch%2FSearchTerm.java;h=af2de1cc240508380f1af320a88df753f9ba9107;hb=d06e23e638f2538f263af76bd32da6b140f20ac6;hp=ad43ee89959ae6c52339968d638ee2e5373bee7b;hpb=0ed3beb875b46caaf9a8ce1d629f9c2c7185bc7f;p=mir.git diff --git a/source/mircoders/search/SearchTerm.java b/source/mircoders/search/SearchTerm.java index ad43ee89..af2de1cc 100755 --- a/source/mircoders/search/SearchTerm.java +++ b/source/mircoders/search/SearchTerm.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2001, 2002 The Mir-coders group + * Copyright (C) 2001, 2002 The Mir-coders group * * This file is part of Mir. * @@ -18,56 +18,78 @@ * 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. + * 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 javax.servlet.*; -import javax.servlet.http.*; +import java.util.Map; -import mir.entity.*; -import mircoders.entity.*; -import mircoders.storage.*; +import javax.servlet.http.HttpServletRequest; -import org.apache.lucene.index.*; -import org.apache.lucene.document.Document; +import mir.entity.Entity; -import freemarker.template.*; +import org.apache.lucene.document.Document; +/** + * The SearchTerm class attempts to encapsulate the relationships + * between: + * + * The basic idea is that how you index, query, and display a + * particular field in a resource are all intimately related, possibly + * more so than how you index two different fields of the same + * resource. + * + *

Instances of classes implementing SearchTerm are created when a Mir + * content entity is indexed by the IndexingProducerNode Class. The + * index method of each class is called in turn to add a bit of + * information to the Lucene documents which will be added to the + * index after it is created and all its fields specified. Instances + * of the same classes are created by ServletModuleOpenIndy so that it + * can construct a query to match against the lucene index, here the + * makeTerm methods are called in turn to pick out the parameter they + * want from the request and then construct the appropriate fragment + * of lucene query, which are ultimately concatenated together. These + * classes are also used to return appropriate template models + * representing any hits to be displayed as a result of processing the + * query.

+ */ abstract public class SearchTerm { - - public static String partOfEntity; - public static String paramName; - public static String matchField; - public static String dataField; - public static String templateVariable; + protected String partOfEntity; + protected String paramName; + protected String matchField; + protected String dataField; + protected 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; - matchField = aMatchField; - dataField = aDataField; + partOfEntity = anEntityPart; + paramName = aParamName; + matchField = aMatchField; + dataField = aDataField; templateVariable = aTemplateVariable; } public SearchTerm(){ - //do nothing, we'll get the values from the extending class definition instead + //do nothing, we'll get the values from the extending class definition instead } abstract public void index(Document doc, Entity entity) throws Exception; abstract public String makeTerm(HttpServletRequest req); - abstract public void returnMeta(SimpleHash result,Document doc); - + abstract public void returnMeta(Map result,Document doc); + }