001: package org.contineo.core.searchengine.search;
002:
003: import java.util.Collection;
004: import java.util.Date;
005: import java.util.Iterator;
006:
007: import org.contineo.core.text.StringParser;
008:
009: /**
010: * @author Michael Scholz
011: */
012: public class SearchOptions {
013:
014: private String queryStr = "";
015:
016: private Integer length = null;
017:
018: private String relation = "";
019:
020: private String format = "";
021:
022: private boolean fuzzy = false;
023:
024: private String username = "";
025:
026: private String[] fields = null;
027:
028: private String[] languages = null;
029:
030: private Date date = null;
031:
032: private String dateRelation = "";
033:
034: /** Creates a new instance of SearchOptions */
035: public SearchOptions() {
036: }
037:
038: public String getQueryStr() {
039: return queryStr;
040: }
041:
042: public Integer getLength() {
043: return length;
044: }
045:
046: public String getRelation() {
047: return relation;
048: }
049:
050: public String getFormat() {
051: return format;
052: }
053:
054: public boolean getFuzzy() {
055: return fuzzy;
056: }
057:
058: public String getUsername() {
059: return username;
060: }
061:
062: public String[] getFields() {
063: return fields;
064: }
065:
066: public Date getDate() {
067: return date;
068: }
069:
070: public String getDateRelation() {
071: return dateRelation;
072: }
073:
074: public void setQueryStr(String query) {
075: queryStr = query;
076: }
077:
078: public void setQueryStr(String query, String phrase, String any,
079: String not) {
080: if (fuzzy) {
081: StringParser sp = new StringParser(query);
082: Collection collquery = sp.getWordTable();
083: Iterator iter = collquery.iterator();
084:
085: while (iter.hasNext()) {
086: String word = (String) iter.next();
087: queryStr += word + "~ ";
088: }
089: } else {
090: queryStr = query;
091: }
092:
093: if ((phrase != null) && !phrase.equals("")) {
094: queryStr += " \"" + phrase + "\"";
095: }
096:
097: if ((any != null) && !any.equals("")) {
098: boolean first = true;
099: StringParser sp = new StringParser(any);
100: Collection collany = sp.getWordTable();
101: Iterator iter = collany.iterator();
102:
103: while (iter.hasNext()) {
104: String word = (String) iter.next();
105:
106: if (!first) {
107: queryStr += " OR";
108: } else {
109: first = false;
110: }
111:
112: queryStr += " " + word;
113:
114: if (fuzzy) {
115: queryStr += "~";
116: }
117: }
118: }
119:
120: if ((not != null) && !not.equals("")) {
121: queryStr += " NOT (" + not + ")";
122: }
123: }
124:
125: public void setLength(Integer len) {
126: length = len;
127: }
128:
129: public void setRelation(String rel) {
130: relation = rel;
131: }
132:
133: public void setFormat(String form) {
134: format = form;
135: }
136:
137: public void setFuzzy(boolean fuz) {
138: fuzzy = fuz;
139: }
140:
141: public void setUsername(String name) {
142: username = name;
143: }
144:
145: public void setFields(String[] flds) {
146: fields = flds;
147: }
148:
149: public void addField(String s) {
150: fields[fields.length] = s;
151: }
152:
153: public void setDate(Date dte) {
154: date = dte;
155: }
156:
157: public void setDateRelation(String daterel) {
158: dateRelation = daterel;
159: }
160:
161: public String[] getLanguages() {
162: return languages;
163: }
164:
165: public void setLanguages(String[] languages) {
166: this.languages = languages;
167: }
168: }
|