xml - 在没有字段规范的情况下在 SOLR 7 上索引整个 XML 文档

标签 xml solr dataimporthandler data-import schemaless

我会尝试在 SOLR(现在我使用的是 7.3.0 版本)上放置一个 xml 文档,而无需在数据配置中设置特定字段或放置一个标签来获取所有其他标签。我尝试使用无模式模式,但没有取回任何文档。是否可以通过某种方式来做这件事,或者 SOLR 无法处理?

这是我的 SOLR document.xml 的示例。我想检测所有标签并在不编辑任何字段的情况下取回相对值。就像我说的,我尝试使用无模式模式但它没有用。

<?xml version="1.0" encoding="UTF-8"?>
<digital_archive xmlns="https://www.site" dataCreazione="2017-05-11T17:15:00">
<DocumentalCategory>some data</DocumentalCategory>
<customer>some data</customer>
<producer>some data</producer>
<documentOwner>some data</documentOwner>
<sources>
    <source>
        <idc>
            <id scheme="adfr">some data</id>
            <name>some data</name>
            <path>sources\source\some_path.XML</path>
            <hash alg="SHA-256">3748738</hash>
        </idc>
        <vdc>
            <id scheme="some data">some data.XML</id>
            <timeReference>2017-03-17T14:19:01+0100</timeReference>
        </vdc>
    </source>
</sources>
<ud>
    <metadati>
        <Name>Jane</Name>
        <Surname>Doe</Surname>
        <FiscalCode>dsrsd6w7hedw</FiscalCode>
        <Date>29.10.2017</Date>
    </metadati>

我期望的结果是这样的:

    <field name="DocumentalCategory">some data</DocumentalCategory>
<field name="customer">some data</customer>
<field name="producer">some data</producer>
<field name="documentOwner">some data</documentOwner>
<field name="sources">
    <field name="source">
        <field name="idc">
            <field name="id" scheme="adfr">some data</id>
            <field name="name">some data</name>
            <field name="path">sources\source\some_path.XML</path>

最佳答案

Solr 不是数据库,它是搜索引擎。它的目标是为您提供良好的搜索结果,而保留原始结构不太重要。

虽然有一些方法可以获取嵌套文档,但您会发现之后的搜索会让您真正重新考虑导入过程。

因此,我建议您退一步考虑一下您希望如何首先找到这些信息以及将返回什么级别的记录/子记录。然后您可以重新访问导入问题。

Schemaless 模式在这里对您没有帮助,因为它仍然希望您的文档采用 Solr 格式,无论是 XML、JSON 还是 CSV。您在这里有一个自定义的 XML 格式。因此,您需要以某种方式对其进行转换。您可以使用数据导入处理程序并定义映射或 XSLT 转换以使其符合 Solr 的期望。无论哪种方式,您很可能都必须进行一些扁平化和 ID 映射。

关于xml - 在没有字段规范的情况下在 SOLR 7 上索引整个 XML 文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50373262/

相关文章:

xml - XSLT 根据子元素属性对父元素进行排序

solr extendeDisMax 解析器 pf 和 qf 参数差异

oracle - solr clobtransformer

mysql - Solr SpatialRecursivePrefixTreeFieldType 和 MySQL DIH

java - Transformer 对象自动将命名空间附加到子元素

java - 解析 XML 文本列表

xml - 如何查看文件夹中的新文件,然后将新文件作为 $1 执行脚本

java - 如何修复 Java 中的 "Requested array size exceeds VM limit"错误?

mysql - Solr字段:needle or q=needle&qf=field different results

mysql - Solr DataImportHandler MySQL 5.0 SELECT CONCAT 查询结果采用base64编码