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