Каков пример 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