1
19
20 package com.liferay.portal.search.lucene;
21
22 import com.liferay.portal.kernel.util.InstancePool;
23 import com.liferay.portal.util.PropsValues;
24
25 import java.io.File;
26 import java.io.IOException;
27 import java.io.InputStream;
28
29 import java.util.Date;
30
31 import org.apache.lucene.document.DateTools;
32 import org.apache.lucene.document.Field;
33
34
40 public class LuceneFields {
41
42 public static String getUID(String portletId, long field1) {
43 return getUID(portletId, String.valueOf(field1));
44 }
45
46 public static String getUID(String portletId, Long field1) {
47 return getUID(portletId, field1.longValue());
48 }
49
50 public static String getUID(String portletId, String field1) {
51 return getUID(portletId, field1, null);
52 }
53
54 public static String getUID(
55 String portletId, long field1, String field2) {
56
57 return getUID(portletId, String.valueOf(field1), field2);
58 }
59
60 public static String getUID(
61 String portletId, Long field1, String field2) {
62
63 return getUID(portletId, field1.longValue(), field2);
64 }
65
66 public static String getUID(
67 String portletId, String field1, String field2) {
68
69 return getUID(portletId, field1, field2, null);
70 }
71
72 public static String getUID(
73 String portletId, String field1, String field2, String field3) {
74
75 String uid = portletId + _UID_PORTLET + field1;
76
77 if (field2 != null) {
78 uid += _UID_FIELD + field2;
79 }
80
81 if (field3 != null) {
82 uid += _UID_FIELD + field3;
83 }
84
85 return uid;
86 }
87
88 public static Field getDate(String field) {
89 return getDate(field, new Date());
90 }
91
92 public static Field getDate(String field, Date date) {
93 if (date == null) {
94 return getDate(field);
95 }
96 else {
97 return new Field(
98 field,
99 DateTools.dateToString(date, DateTools.Resolution.SECOND),
100 Field.Store.YES, Field.Index.UN_TOKENIZED);
101 }
102 }
103
104 public static Field getFile(String field, InputStream is, String fileExt) {
105 LuceneFileExtractor fileExtractor =
106 (LuceneFileExtractor)InstancePool.get(
107 PropsValues.LUCENE_FILE_EXTRACTOR);
108
109 return fileExtractor.getFile(field, is, fileExt);
110 }
111
112 public static Field getFile(String field, byte[] bytes, String fileExt) {
113 LuceneFileExtractor fileExtractor =
114 (LuceneFileExtractor)InstancePool.get(
115 PropsValues.LUCENE_FILE_EXTRACTOR);
116
117 return fileExtractor.getFile(field, bytes, fileExt);
118 }
119
120 public static Field getFile(String field, File file, String fileExt)
121 throws IOException {
122
123 LuceneFileExtractor fileExtractor =
124 (LuceneFileExtractor)InstancePool.get(
125 PropsValues.LUCENE_FILE_EXTRACTOR);
126
127 return fileExtractor.getFile(field, file, fileExt);
128 }
129
130 public static Field getKeyword(String field, double keyword) {
131 return getKeyword(field, String.valueOf(keyword));
132 }
133
134 public static Field getKeyword(String field, long keyword) {
135 return getKeyword(field, String.valueOf(keyword));
136 }
137
138 public static Field getKeyword(String field, Long keyword) {
139 return getKeyword(field, keyword.longValue());
140 }
141
142 public static Field getKeyword(String field, String keyword) {
143
145 Field fieldObj = new Field(
146 field, keyword, Field.Store.YES, Field.Index.UN_TOKENIZED);
147
148
150 return fieldObj;
151 }
152
153 public static Field getText(String field, String text) {
154 return new Field(field, text, Field.Store.YES, Field.Index.TOKENIZED);
155 }
156
157 public static Field getText(String field, StringBuilder sb) {
158 return getText(field, sb.toString());
159 }
160
161 private static final String _UID_PORTLET = "_PORTLET_";
162
163 private static final String _UID_FIELD = "_FIELD_";
164
165 }