我需要存储和索引附加了特定Solr文档的键值对。例如,可能有一个可变数量的标签(标签)附加到solr文档,每个标签名称都有一个整数以及它作为它的值。
<doc>
<id>1001</id>
#dymanic tags attached
php=>10
web=>2
programming=>12
mysql=>10
</doc>
因此,当我搜索“php”时,这个文档应该显示在搜索结果中,我应该能够读取该特定文档的值(例如,它的值为10)。如何为此创建架构以及如何存储它。另外我如何使用REST api搜索它?
答案 0 :(得分:1)
对于动态字段,您需要将它们添加为获取计数的键,以及使它们可搜索的值。
相反,你可以尝试 -
将它们添加为语言和计数的多值字段。
语言字段将包含语言的值,也可以作为可搜索的字段。
<field name="language" type="text" indexed="true" stored="true" multiValued="true"/>
使用维护的顺序将语言计数添加为其他多值字段。
<field name="language_count" type="int" indexed="false" stored="true" multiValued="true"/>
在响应中,您将拥有两个用于language和language_counts的数组,您可以按位置映射客户端语言的计数。
答案 1 :(得分:0)
因为solr具有新功能而更新位:
你是XML,solr擅长xml,所以使用XML,然后让solr做自己的解析。
换句话说,您可能会考虑其中之一:
<doc>
<id php="10" web="2" programming="12" mysql="10">1001</id>
</doc>
或
<doc>
<element id="1001" php="10" web="2" programming="12" mysql="10">
#dymanic tags attached
php=>10
web=>2
programming=>12
mysql=>10
</element>
</doc>
或
<doc>
<element>
<id>1001</id>
<php>10</php>
<web>2</web>
<programming>12</programming>
<mysql>10</mysql>
</element>
</doc>
当然,如果您真的无法自行更改数据,原始答案仍然存在。