将Apache Solr中的XML文件作为纯文本索引

时间:2015-11-18 11:33:26

标签: java xml solr solrj

有没有办法在单个内容字段中转储xml文件的所有内容?

schema.xml中

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="content" type="text_general" indexed="true" stored="true" multiValued="false" termVectors="true" termPositions="true" termOffsets="true"/>

用于编制索引的代码

HttpUrlConnection solrHttpURLConnection = "http://localhost:7892/solr/myCore/update/extract?literal.id=1234&commit=true "
solrHttpURLConnection.setDoOutput(true);
solrHttpURLConnection.setDoInput(true);
solrHttpURLConnection.setUseCaches(false);
solrHttpURLConnection.setAllowUserInteraction(false);
solrHttpURLConnection.setRequestProperty("Content-type", type);
solrHttpURLConnection.connect(); 

我从这个url获取输出流并通过从dataServer获取输入流来编写内容。

注意:

  1. 上述代码适用于除xml,csv和json之外的所有文件格式。
  2. 没有来自solr的错误消息
  3. 示例XML文件

    <?xml version="1.0" encoding="UTF-8"?>
    <content>just a test
    </content>
    

1 个答案:

答案 0 :(得分:1)

  1. 将内容类型设置为&#34; text / xml&#34;
  2. 在代码中添加以下行: OutputStreamWriter writer = new OutputStreamWriter(solrHttpURLConnection.getOutputStream()); writer.write(your_xml_file); writer.flush();

  3. 使用此网址http://localhost:7892/solr/myCore/update?literal.id=1234&commit=true执行请求 对于json文件,请使用/ update / json / docs

  4. 请查看此文档,了解如何使用索引处理程序https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Index+Handlers#UploadingDatawithIndexHandlers-XMLUpdateCommands
  5. 上传数据