我想做的事情如下。
我有Notes文档的字段[from(type:text),To(type:text),Attachment(Type:RichText)]然后我尝试创建一个SolrDocument
的Notes文档上文提到的。
创建SolrDocument
后将其保存到Solr服务器我的SolrDocument
看起来如何。
<doc>
<str name="contid">340DD508D43F2F2965257ECF0045AF1C</str> // saving the UNID of the doc
<arr name="cmrights">
<str>DummyValue</str>
<str>DummyValue1</str>
<str>DummyValue2</str>
<str>DummyValue3</str>
</arr>
<str name="frommail">sender@gmail.com</str>
<date name="posteddate">2015-09-29T12:41:08Z</date>
<arr name="sendto">
<str>receiver@gmial.com</str>
</arr>
<str name="subject">NotesSlrWriter</str>
</doc>
要在上面写SolrInputDocument
我使用以下方法(它是我班级的一部分)
private void writeFields() throws Exception {
writeField("contid", doc.getUniversalID());
writeField("cmrights", MultiValues);
writeField("dbtype", arvConfig);
Collection<IDXField> fields = fieldsToIndex(arvConfig);
for (IDXField idxField : fields) {
int type = idxField.getDataType();
switch (type) {
case SQLFieldDesc.DATE:
String DateField = idxField.getArcName();
Collection<Date> dValues = new ArrayList<Date>();
String d2 = doc.getItemValueDateTimeArray(DateField).get(0)
.toString();
// System.out.println(d2);
SimpleDateFormat sdf = new SimpleDateFormat(
"MM/dd/yyyy hh:mm:ss a");
Date d4 = sdf.parse(d2);
System.out.println("New Date is: " + d4.toString());
dValues.add(d4);
System.out.println(DateField.toLowerCase());
System.out.println(doc.getItemValue(DateField).toString());
writeDateField(DateField.toLowerCase(), dValues);
break;
case SQLFieldDesc.NUMINT:
System.out.println("number fields");
break;
default:
final String FieldName = idxField.getArcName();
writeField(FieldName.toLowerCase(),
doc.getItemValueString(idxField.getArcName()));
System.out.println(FieldName);
System.out
.println(doc.getItemValueString(idxField.getArcName()));
break;
}
}
}
所以,我想做这样的事情。
solrInputDocument.writeFiles(Attachment , files which are attached);
像我必须编写方法,但我真的不明白我如何处理或如何开始它,Notes文档的字段是RichTextFormat中的“附件”。
我想我可以使用当前Document的dxl这样做。然后我必须通过dxl获取内容,但问题是我如何在SolrDocument中获取该内容。
有任何方法或步骤可以帮助我引导我解决问题。
感谢您阅读我的问题。
答案 0 :(得分:1)
您可以使用URL
获取RichText字段的HTML表示形式http://server/db.nsf/view/docunid/RichTextFieldname?OpenField
只需通过URL中的http以HTML格式阅读RichText字段的内容 例如:
http://server/db.nsf/0/AF665BE72463477AC1257EB90039E589/Body?OpenField