001
014
015 package com.liferay.portal.search.lucene;
016
017 import com.liferay.portal.kernel.util.StringPool;
018
019 import java.io.IOException;
020
021 import java.util.Date;
022
023 import org.apache.lucene.analysis.Analyzer;
024 import org.apache.lucene.document.Document;
025 import org.apache.lucene.index.Term;
026 import org.apache.lucene.queryParser.ParseException;
027 import org.apache.lucene.search.BooleanQuery;
028 import org.apache.lucene.search.IndexSearcher;
029 import org.apache.lucene.search.Query;
030 import org.apache.lucene.util.Version;
031
032
037 public class LuceneHelperUtil {
038
039 public static void addDate(Document doc, String field, Date value) {
040 doc.add(LuceneFields.getDate(field, value));
041 }
042
043 public static void addDocument(long companyId, Document document)
044 throws IOException {
045
046 getLuceneHelper().addDocument(companyId, document);
047 }
048
049 public static void addExactTerm(
050 BooleanQuery booleanQuery, String field, boolean value) {
051
052 addExactTerm(booleanQuery, field, String.valueOf(value));
053 }
054
055 public static void addExactTerm(
056 BooleanQuery booleanQuery, String field, double value) {
057
058 addExactTerm(booleanQuery, field, String.valueOf(value));
059 }
060
061 public static void addExactTerm(
062 BooleanQuery booleanQuery, String field, int value) {
063
064 addExactTerm(booleanQuery, field, String.valueOf(value));
065 }
066
067 public static void addExactTerm(
068 BooleanQuery booleanQuery, String field, long value) {
069
070 addExactTerm(booleanQuery, field, String.valueOf(value));
071 }
072
073 public static void addExactTerm(
074 BooleanQuery booleanQuery, String field, short value) {
075
076 addExactTerm(booleanQuery, field, String.valueOf(value));
077 }
078
079 public static void addExactTerm(
080 BooleanQuery booleanQuery, String field, String value) {
081
082 getLuceneHelper().addExactTerm(booleanQuery, field, value);
083 }
084
085 public static void addRequiredTerm(
086 BooleanQuery booleanQuery, String field, boolean value) {
087
088 addRequiredTerm(booleanQuery, field, String.valueOf(value));
089 }
090
091 public static void addRequiredTerm(
092 BooleanQuery booleanQuery, String field, double value) {
093
094 addRequiredTerm(booleanQuery, field, String.valueOf(value));
095 }
096
097 public static void addRequiredTerm(
098 BooleanQuery booleanQuery, String field, int value) {
099
100 addRequiredTerm(booleanQuery, field, String.valueOf(value));
101 }
102
103 public static void addRequiredTerm(
104 BooleanQuery booleanQuery, String field, long value) {
105
106 addRequiredTerm(booleanQuery, field, String.valueOf(value));
107 }
108
109 public static void addRequiredTerm(
110 BooleanQuery booleanQuery, String field, short value) {
111
112 addRequiredTerm(booleanQuery, field, String.valueOf(value));
113 }
114
115 public static void addRequiredTerm(
116 BooleanQuery booleanQuery, String field, String value) {
117
118 addRequiredTerm(booleanQuery, field, value, false);
119 }
120
121 public static void addRequiredTerm(
122 BooleanQuery booleanQuery, String field, String value, boolean like) {
123
124 getLuceneHelper().addRequiredTerm(booleanQuery, field, value, like);
125 }
126
127 public static void addTerm(
128 BooleanQuery booleanQuery, String field, long value)
129 throws ParseException {
130
131 addTerm(booleanQuery, field, String.valueOf(value));
132 }
133
134 public static void addTerm(
135 BooleanQuery booleanQuery, String field, String value)
136 throws ParseException {
137
138 addTerm(booleanQuery, field, value, false);
139 }
140
141 public static void addTerm(
142 BooleanQuery booleanQuery, String field, String value,
143 boolean like)
144 throws ParseException {
145
146 getLuceneHelper().addTerm(booleanQuery, field, value, like);
147 }
148
149 public static void delete(long companyId) {
150 getLuceneHelper().delete(companyId);
151 }
152
153 public static void deleteDocuments(long companyId, Term term)
154 throws IOException {
155
156 getLuceneHelper().deleteDocuments(companyId, term);
157 }
158
159 public static Analyzer getAnalyzer() {
160 return getLuceneHelper().getAnalyzer();
161 }
162
163 public static LuceneHelper getLuceneHelper() {
164 return _luceneHelper;
165 }
166
167 public static String[] getQueryTerms(Query query) {
168 return getLuceneHelper().getQueryTerms(query);
169 }
170
171 public static IndexSearcher getSearcher(long companyId, boolean readOnly)
172 throws IOException {
173
174 return getLuceneHelper().getSearcher(companyId, readOnly);
175 }
176
177 public static String getSnippet(Query query, String field, String s)
178 throws IOException {
179
180 return getSnippet(
181 query, field, s, 3, 80, "...", StringPool.BLANK, StringPool.BLANK);
182 }
183
184 public static String getSnippet(
185 Query query, String field, String s, int maxNumFragments,
186 int fragmentLength, String fragmentSuffix, String preTag,
187 String postTag)
188 throws IOException {
189
190 return getLuceneHelper().getSnippet(
191 query, field, s, maxNumFragments, fragmentLength, fragmentSuffix,
192 preTag, postTag);
193 }
194
195 public static Version getVersion() {
196 return getLuceneHelper().getVersion();
197 }
198
199 public static void updateDocument(
200 long companyId, Term term, Document document)
201 throws IOException {
202
203 getLuceneHelper().updateDocument(companyId, term, document);
204 }
205
206 public static void shutdown() {
207 getLuceneHelper().shutdown();
208 }
209
210 public void setLuceneHelper(LuceneHelper luceneHelper) {
211 _luceneHelper = luceneHelper;
212 }
213
214 private static LuceneHelper _luceneHelper;
215
216 }