source: trunk/java-client/org/nzdl/gsdl/service/NzdlQuery.java@ 2107

Last change on this file since 2107 was 2107, checked in by bas6, 23 years ago

add comments to NzdlQuery

  • Property svn:keywords set to Author Date Id Revision
File size: 7.1 KB
Line 
1/*
2 * NzdlQuery.java
3 * Copyright (C) 2001 New Zealand Digital Library Project
4 *
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program; if not, write to the Free Software
17 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18 */
19
20//the package we're in
21package org.nzdl.gsdl.service;
22
23import java.util.*;
24import org.nzdl.gsdl.util.NzdlConstants;
25
26/**
27 * NzdlQuery is an object that holds the options for a query and is
28 * easily configured by the user.
29 *
30 * @author Stuart Yeates ([email protected])
31 * @author Aziz Mahoui ([email protected])
32 * @author Gordon Paynter ([email protected])
33 * @version $Revision: 2107 $
34 */
35
36public class NzdlQuery extends java.lang.Object {
37
38
39 private Map m_Options = null;
40
41 /**
42 * Creates an instance of NzdlQuery with an empty query string.
43 * Default values are: maxDocs 200, startResults= 1, endResults= 10,
44 * queryType= "ranked", caseFolding= true, stemming= false, queryTerm= "".
45 */
46 public NzdlQuery() {
47 m_Options = new HashMap();
48 setQueryTerm ( NzdlConstants.DEFAULT_QUERY_TERM );
49 setQueryType ( NzdlConstants.DEFAULT_QUERY_TYPE );
50 setCaseFolding ( NzdlConstants.DEFAULT_CASE_FOLDING );
51 setStemming ( NzdlConstants.DEFAULT_STEMMING );
52 setStartResults( NzdlConstants.DEFAULT_START_RESULTS );
53 setEndResults ( NzdlConstants.DEFAULT_END_RESULTS );
54 setMaxDocs ( NzdlConstants.DEFAULT_MAX_DOCS );
55 }
56
57 /**
58 * Creates an instance of NzdlQuery with a value for query string. Has the
59 * same default values as NzdlQuery(), with the exception of term which is
60 * loaded into the query string field.
61 * @param term the query string
62 */
63 public NzdlQuery( String _term ) {
64 m_Options = new HashMap();
65 setQueryTerm ( _term );
66 setQueryType ( NzdlConstants.DEFAULT_QUERY_TYPE );
67 setCaseFolding ( NzdlConstants.DEFAULT_CASE_FOLDING );
68 setStemming ( NzdlConstants.DEFAULT_STEMMING );
69 setStartResults( NzdlConstants.DEFAULT_START_RESULTS );
70 setEndResults ( NzdlConstants.DEFAULT_END_RESULTS );
71 setMaxDocs ( NzdlConstants.DEFAULT_MAX_DOCS );
72 }
73
74 /**
75 * Sets the expression to be queried. Note: this can also be done using the
76 * constructor.
77 * @param term the query expression string
78 */
79 public void setQueryTerm(String _term) {
80 m_Options.put("Term", _term);
81 }
82
83 /**
84 * Sets the query type as either "ranked" or "boolean". "ranked"
85 * orders results by suitability. "boolean" allows use of operators such as
86 * !, &, |. Default is "ranked"
87 * @param type "ranked" or "boolean"
88 */
89 public void setQueryType(String _type) {
90 m_Options.put("QueryType", _type);
91 }
92
93 /**
94 * Sets query to ignore case. Default is true.
95 * @param case if false then sets query to be case sensitive. If true
96 * then sets query to be case insenstive.
97 */
98 public void setCaseFolding(String _case) {
99 m_Options.put("CaseFold", _case);
100 }
101
102 /**
103 * Sets query to ignore word endings. Default is false.
104 * @param stem if true, sets query to strip endings such as "...ing",
105 * "...ed". If false, sets query to only match whole words.
106 */
107 public void setStemming(String _stem) {
108 m_Options.put("Stem", _stem);
109 }
110
111 /**
112 * Sets the maximum number of documents that can be found by a query.
113 * Default is 200.
114 * @param max The maximum permitted number of documents to be found
115 * by the query
116 */
117 public void setMaxDocs(int _max) {
118 m_Options.put("Maxdocs", new Integer(_max));
119 }
120
121 /**
122 * Sets the start number of the result set. The result set is a subset
123 * of the maximum number of documents that will be found by the query.
124 * Default is 1.
125 * @param start the number of the first document, relative to the found
126 * documents
127 */
128 public void setStartResults(int _start) {
129 m_Options.put("StartResults", new Integer(_start));
130 }
131
132 /**
133 * Sets the end number of the result set. The result set is a subset of the
134 * maximum number documents that could be found by that query.
135 * Default is 10.
136 * @param end the number of the last document relative to the found
137 * documents
138 */
139 public void setEndResults(int _end) {
140 m_Options.put("EndResults", new Integer(_end));
141 }
142
143 /**
144 * Returns whether query is "ranked" or "boolean". "ranked" orders results by
145 * suitability. "boolean" allows use of operators such as !, &, |. Default is
146 * "ranked"
147 * @return Either "ranked" or "boolean"
148 */
149 public String getQueryType() {
150 return (String)m_Options.get("QueryType");
151 }
152
153 /**
154 * Returns the query string expression.
155 * @return the query string
156 */
157 public String getQueryTerm() {
158 return (String)m_Options.get("Term");
159 }
160
161 /**
162 * Returns "true" if query is case insenstive. Default is "true"
163 * @return "true" if query is case insenstive, "false" if the query is case
164 * senstive.
165 */
166 public String getCaseFolding() {
167 return (String)m_Options.get("CaseFold");
168 }
169
170 /**
171 * Returns "true" if query ignores word endings. Default is "false".
172 * @return "true" if query strips endings such as "...ing" or "...ed" , false
173 * if query only matches whole words.
174 */
175 public String getStemming() {
176 return (String)m_Options.get("Stem");
177 }
178
179 /**
180 * Returns the current setting for the maximum number of documents that
181 * may be found by a query. Default is 200.
182 * @return The maximum number of documents to be found
183 */
184 public int getMaxDocs() {
185 return ((Integer) m_Options.get("Maxdocs")).intValue();
186 }
187
188 /**
189 * Returns the start number of the result set. The result set is a subset of
190 * the maximum number of documents that could be found by the query.
191 * Default is 1.
192 * @return The number of the first document relative to the documents that
193 * were found to match the query
194 */
195 public int getStartResults() {
196 return ((Integer) m_Options.get("StartResults")).intValue();
197 }
198
199 /**
200 * Returns the end number of the result set. The result set is a subset of
201 * the maximum number documents that could be found by the query.
202 * Default is 10.
203 * @return The number of the last document relative to the documents that
204 * were found to match the query.
205 */
206 public int getEndResults() {
207 return ((Integer) m_Options.get("EndResults")).intValue();
208 }
209
210 /**
211 * Returns the set of query terms.
212 * @return This set: "EndResults", "QueryType", "Term", "MaxDocs",
213 * "StartResults", "Stem", "CaseFold"
214 */
215 public Set queryKeySet() {
216 return m_Options.keySet();
217 }
218
219 /**
220 * Returns a collection of the current query values.
221 * @return For a default query this collection: 10, "ranked", "", 200, 1
222 * , false, true
223 */
224 public Collection queryValues() {
225 return m_Options.values();
226 }
227
228}
229
Note: See TracBrowser for help on using the repository browser.