【问题标题】:What's a schema.xml example for using block join (nested fields)?使用块连接(嵌套字段)的 schema.xml 示例是什么?
【发布时间】:2015-05-03 04:21:20
【问题描述】:

我正在寻找使用 JSON 写入具有块连接(基本上是嵌套字段)的 solr 的好示例,但是 schema.xml 会是什么样子?

例如,我有一个包含许多 SKU 的文档,我想在这些 sku 上添加标签。这些标签包含多位信息(描述、用户、类型),而且它们是多值的,因为一个 SKU 可以有多个标签。

  • SKU1
    • TagName1、UserId1、Type1
    • TagName2、UserId1、Type1
    • TagName3、UserId2、Type1
    • TagName4、UserId1、Type2
  • SKU2
    • TagName1、UserId1、Type1
    • TagName2、UserId1、Type1
    • TagName3、UserId2、Type1
  • SKU3
    • TagName4、UserId3、Type1

通过这样的示例,solr schema.xml 的外观如何?

我正在使用 Solr 4.10 - 如果我们升级到 5.0 会解决这个问题吗?

【问题讨论】:

    标签: solr solr4


    【解决方案1】:

    我想我明白了。

    架构如下所示:

    <fields>
        <field name="_root_" type="string" indexed="true" stored="false"/>
        <field name="type" type="string" indexed="true" stored="true" />
        <field name="Id" type="text_general" indexed="true" stored="true" required="true" />
        <field name="StockNumber" type="text_general" indexed="true" stored="true" /> 
        <field name="TagName" type="text_general" indexed="true" stored="true" /> 
        <field name="TagUser" type="text_general" indexed="true" stored="true" /> 
        <field name="TagType" type="tint" indexed="true" stored="true" />
    <fields>
    

    要写入它,它看起来像这样:

    <add>
        <doc>
              <field name="Id">SkuTest111</field>
              <field name="type">SKU</field>
              <field name="StockNum">Test111</field>
                  <doc>
                      <field name="Id">TagTest111cat</field>
                      <field name="type">Tag</field>
                      <field name="TagName">Cat</field>
                      <field name="TagUser">Eldorian</field>
                      <field name="TagType">1</field>
                      <field name="StockNum">Test111</field>
                  </doc>
                  <doc>
                      <field name="Id">TagTest111dog</field>
                      <field name="type">Tag</field>
                      <field name="TagName">Dog</field>
                      <field name="TagUser">Eldorian</field>
                      <field name="TagType">2</field>
                      <field name="StockNum">Test111</field>
                  </doc>
        </doc>
    </add>
    

    在本例中,您的 SKU 为 Test111,有 2 个标签,猫和狗。

    这似乎只有在您执行扩展查询时才可见,例如在您的 solr 管理员上使用此 URL:

    http://localhost:8983/solr/collection1/select?q={!parent which='type:SKU'}&fq=StockNum:Test111&wt=xml&indent=true&expand=true&expand.field=StockNum&expand.q=StockNum:Test111

    【讨论】:

    • 我们如何使用 SolrJ 实现这一点。您能否也为此发布您的 schema.xml 和 solrconfig.xml。
    猜你喜欢
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 2015-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多