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