001
014
015 package com.liferay.portal.kernel.search;
016
017 import com.liferay.portal.kernel.cluster.Priority;
018 import com.liferay.portal.kernel.log.Log;
019 import com.liferay.portal.kernel.log.LogFactoryUtil;
020 import com.liferay.portal.kernel.security.pacl.DoPrivileged;
021 import com.liferay.portal.kernel.util.InstanceFactory;
022 import com.liferay.portal.kernel.util.PortalClassLoaderUtil;
023
024
029 @DoPrivileged
030 public class BaseSearchEngine implements SearchEngine {
031
032 @Override
033 public BooleanClauseFactory getBooleanClauseFactory() {
034 if (_booleanClauseFactory == null) {
035 ClassLoader classLoader = PortalClassLoaderUtil.getClassLoader();
036
037 String className =
038 "com.liferay.portal.search.generic.BooleanClauseFactoryImpl";
039
040 try {
041 _booleanClauseFactory =
042 (BooleanClauseFactory)InstanceFactory.newInstance(
043 classLoader, className);
044 }
045 catch (Exception e) {
046 _log.fatal(
047 "Unable to locate appropriate BooleanClauseFactory", e);
048 }
049 }
050
051 return _booleanClauseFactory;
052 }
053
054 @Override
055 public BooleanQueryFactory getBooleanQueryFactory() {
056 if (_booleanQueryFactory != null) {
057 return _booleanQueryFactory;
058 }
059
060 ClassLoader classLoader = PortalClassLoaderUtil.getClassLoader();
061
062 String className =
063 "com.liferay.portal.search.lucene.BooleanQueryFactoryImpl";
064
065 if (!isLuceneBased()) {
066 className =
067 "com.liferay.portal.search.generic.BooleanQueryFactoryImpl";
068 }
069
070 try {
071 _booleanQueryFactory =
072 (BooleanQueryFactory)InstanceFactory.newInstance(
073 classLoader, className);
074 }
075 catch (Exception e) {
076 _log.fatal("Unable to locate appropriate BooleanQueryFactory", e);
077 }
078
079 return _booleanQueryFactory;
080 }
081
082 @Override
083 public Priority getClusteredWritePriority() {
084 return _clusteredWritePriority;
085 }
086
087 @Override
088 public IndexSearcher getIndexSearcher() {
089 return _indexSearcher;
090 }
091
092 @Override
093 public IndexWriter getIndexWriter() {
094 return _indexWriter;
095 }
096
097 @Override
098 public TermQueryFactory getTermQueryFactory() {
099 if (_termQueryFactory != null) {
100 return _termQueryFactory;
101 }
102
103 ClassLoader classLoader = PortalClassLoaderUtil.getClassLoader();
104
105 String className =
106 "com.liferay.portal.search.lucene.TermQueryFactoryImpl";
107
108 if (!isLuceneBased()) {
109 className =
110 "com.liferay.portal.search.generic.TermQueryFactoryImpl";
111 }
112
113 try {
114 _termQueryFactory =
115 (TermQueryFactory)InstanceFactory.newInstance(
116 classLoader, className);
117 }
118 catch (Exception e) {
119 _log.fatal("Unable to locate appropriate BooleanQueryFactory", e);
120 }
121
122 return _termQueryFactory;
123 }
124
125 @Override
126 public TermRangeQueryFactory getTermRangeQueryFactory() {
127 if (_termRangeQueryFactory != null) {
128 return _termRangeQueryFactory;
129 }
130
131 ClassLoader classLoader = PortalClassLoaderUtil.getClassLoader();
132
133 String className =
134 "com.liferay.portal.search.lucene.TermRangeQueryFactoryImpl";
135
136 if (!isLuceneBased()) {
137 className =
138 "com.liferay.portal.search.generic." +
139 "TermRangeQueryFactoryImpl";
140 }
141
142 try {
143 _termRangeQueryFactory =
144 (TermRangeQueryFactory)InstanceFactory.newInstance(
145 classLoader, className);
146 }
147 catch (Exception e) {
148 _log.fatal("Unable to locate appropriate BooleanQueryFactory", e);
149 }
150
151 return _termRangeQueryFactory;
152 }
153
154 @Override
155 public String getVendor() {
156 return _vendor;
157 }
158
159 @Override
160 public boolean isClusteredWrite() {
161 return _clusteredWrite;
162 }
163
164 @Override
165 public boolean isLuceneBased() {
166 return _luceneBased;
167 }
168
169 public void setBooleanClauseFactory(
170 BooleanClauseFactory booleanClauseFactory) {
171
172 _booleanClauseFactory = booleanClauseFactory;
173 }
174
175 public void setBooleanQueryFactory(
176 BooleanQueryFactory booleanQueryFactory) {
177
178 _booleanQueryFactory = booleanQueryFactory;
179 }
180
181 public void setClusteredWrite(boolean clusteredWrite) {
182 _clusteredWrite = clusteredWrite;
183 }
184
185 public void setClusteredWritePriority(Priority clusteredWritePriority) {
186 _clusteredWritePriority = clusteredWritePriority;
187 }
188
189 public void setIndexSearcher(IndexSearcher indexSearcher) {
190 _indexSearcher = indexSearcher;
191 }
192
193 public void setIndexWriter(IndexWriter indexWriter) {
194 _indexWriter = indexWriter;
195 }
196
197 public void setLuceneBased(boolean luceneBased) {
198 _luceneBased = luceneBased;
199 }
200
201 public void setTermQueryFactory(TermQueryFactory termQueryFactory) {
202 _termQueryFactory = termQueryFactory;
203 }
204
205 public void setTermRangeQueryFactory(
206 TermRangeQueryFactory termRangeQueryFactory) {
207
208 _termRangeQueryFactory = termRangeQueryFactory;
209 }
210
211 public void setVendor(String vendor) {
212 _vendor = vendor;
213 }
214
215 private static Log _log = LogFactoryUtil.getLog(BaseSearchEngine.class);
216
217 private BooleanClauseFactory _booleanClauseFactory;
218 private BooleanQueryFactory _booleanQueryFactory;
219 private boolean _clusteredWrite;
220 private Priority _clusteredWritePriority;
221 private IndexSearcher _indexSearcher = new DummyIndexSearcher();
222 private IndexWriter _indexWriter = new DummyIndexWriter();
223 private boolean _luceneBased;
224 private TermQueryFactory _termQueryFactory;
225 private TermRangeQueryFactory _termRangeQueryFactory;
226 private String _vendor;
227
228 }