- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
public static Document getDoc(CarPartsAd ad) {
Document doc = new Document();
doc.add(new Field("id", ad.getId().toString(), YES, NOT_ANALYZED));
doc.add(new Field("mark", Long.toString(ad.getMarkId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("model", Long.toString(ad.getModelId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("frame", Long.toString(ad.getFrameId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("engine", Long.toString(ad.getEngineId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("type", Long.toString(ad.getTypeId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("front_rear", Long.toString(ad.getFrontRear()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("right_left", Long.toString(ad.getRightLeft()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("up_down", Long.toString(ad.getUpDown()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("contact", Long.toString(ad.getContactId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("town", Long.toString(ad.getTownId()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("part_state", Long.toString(ad.getPartState()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("original_flag", Long.toString(ad.getOriginalFlag()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("price", Integer.toString(ad.getPriceRub()), Field.Store.YES, NOT_ANALYZED));
doc.add(new Field("price_flag", (ad.getPriceRub() > 0 ? "0" : "1"), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("date_sort", Long.toString(ad.getSort()).substring(0, 9), Field.Store.YES, NOT_ANALYZED));
doc.add(new Field("oem", format(ad.getOem()).replaceAll(" ", "").toLowerCase(), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("producer_code", format(ad.getProducerCode()).replaceAll(" ", "").toLowerCase(), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("uplift_rating", Integer.toString(ad.getUpliftRating()), Field.Store.NO, NOT_ANALYZED));
doc.add(new Field("ads_source", Integer.toString(ad.getAdsSource()), Field.Store.NO, NOT_ANALYZED));
return doc;
}
лучик ненависти авторам lucene за то, что заставляют писать такое :)
sectus 20.10.2010 10:14 # 0
Меня смущает только последний параметр: чего это он всё время повторяется? А в остальном "всё пучком".
zlob.jc 20.10.2010 11:39 # 0
последний параметр обязательный, ну и в моем случае всегда тот же , из песни слов не выкинешь :)
sectus 21.10.2010 04:26 # 0
Lure Of Chaos 20.10.2010 16:52 # 0
Long.toString
Integer.toString
к этому
ad.getId().toString
и еще, когда нибудь ad==null
а вообще, я думаю, и здесь можно выкрутиться и обойтись без копипасты.
Bugdog 20.10.2010 22:16 # 0
zlob.jc 21.10.2010 04:41 # 0
3.14159265 21.10.2010 10:42 # 0
говно не в люцене, а в сабже, код можно сократить съекономив на doc.add(new Field(, toString и NOT_ANALYZED например.
а настройки полей для индексации вынести в массив или конфиг
zlob.jc 22.10.2010 05:15 # 0
есть такой принцип не плодить лишных сущностей
Lure Of Chaos 25.10.2010 16:35 # 0
и писать на ассемблере, без подпрограмм и тем более ООП
xXx_totalwar 25.10.2010 17:12 # +2
nikelin 23.10.2010 09:47 # 0