如何在Solr中使用XML或JSON索引字符串而不使用SolrInputDocument

时间:2017-08-15 19:02:27

标签: java json xml scala solr

我需要索引Solr中的字符串集合。

每个String包含XML内容,类似于下面的内容:

<item>
  <property>"Test"</property>
  <property2>"Test"</property2>
  <property_nested>
    <nested1>"Nested"</nested1>
    <nested2>"Nested"</nested2>
    <nested3>"Nested"</nested3>
    <more_nested>
      <prop>"testing"</prop>
      <prop2>"testingTotalAmount"</prop2>
      <prop3>"one more property"</prop3>   
    </more_nested>
  </property_nested>
</item> 

我的代码与此类似:

List<String> xmls = allXML();
xmls.foreach(x -> {
    // INDEX using solrClient
});

对于我的集合中的每个元素,我应该在Solr中获得相应的文档。使用嵌套标签等尊重它的模式,可以推断出类型。

SolrJ给我上课: org.apache.solr.common.SolrInputDocument

虽然这个类允许我添加字段,属性然后索引我的数据。我觉得使用它是多余的,它会让我编写大量代码来提取标记值并将它们放入SolrInputDocument中。我宁愿有一个替代方案,只需索引我在Solr中拥有的数据字符串。

如何在Solr中索引我的集合中的每个元素字符串,保留其架构,或者换句话说,它的嵌套标签,而不使用SolrInputDocument?

  

我也在考虑使用Scala而不是Java,但没有找到   到目前为止任何图书馆

     

我也在考虑Json MimeType,只要能够保持要求

1 个答案:

答案 0 :(得分:0)

如果要索引输入XML中的每个元素,那么我相信您必须在不同的Solr字段下提取这些值。

  

它会让我编写很多代码来提取标记值

对此,使用XSLT可以帮助您将输入XML转换为Solr XML文档格式。

-Amit