Каков пример schema.xml для использования объединения блоков (вложенные поля)?

Я нахожу хорошие примеры использования JSON при написании для решения с объединениями блоков (в основном, с вложенными полями), но как будет выглядеть schema.xml?

Например, у меня есть документ, в котором много 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?

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 тегами, кошка и собака.

Это кажется видимым только в том случае, если вы выполняете расширенный запрос, примером которого является использование этого URL-адреса в вашем solr admin:

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

Другие вопросы по тегам