获取带有附件文件的Notes文档的内容到Solr Document

时间:2015-09-30 10:13:22

标签: java solr lotus-notes lotus-domino

我想做的事情如下。

我有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中获取该内容。

有任何方法或步骤可以帮助我引导我解决问题。

感谢您阅读我的问题。

1 个答案:

答案 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