问题
有没有一种方法可以让solr中的数字字段类型允许null值并且是多值的?
例如"my_number_field": [1, 3, null, 4]
背景
我正在尝试将一些从XML展开的数据索引到JSON中,其中一个字段是数字字段(当前为pdoubles
),并且可以有空值。
{
...,
"sector_code": [
"52010",
"P13"
],
"sector_vocabulary": [
"",
"99"
],
"sector_percentage": [
"",
"100"
]
}
managed-schema
:
<field name="sector_percentage" type="pdoubles" multiValued="true" indexed="true" required="false" stored="true"/>
<fieldType name="pdoubles" class="solr.DoublePointField" docValues="true" multiValued="true"/>
当我试图将其索引到Solr中时,我得到以下错误:
Error adding field 'sector_percentage'='[,100]' msg=empty String]
将值设置为0是不合适的,因为源数据中没有值可能意味着基于上下文的不同情况。
答案是对Solr中不存在的pdoubles
值使用NaN
。
"my_number_field": [1, 3, "NaN", 4]
带索引字段的查询响应示例:
{
"responseHeader":{
"zkConnected":true,
"status":0,
"QTime":0,
"params":{
"q":"id:zz1234",
"indent":"true",
"fl":"sector_percentage",
"q.op":"OR",
"_":"1635517103316"}},
"response":{"numFound":1,"start":0,"numFoundExact":true,"docs":[
{
"sector_percentage":[50.0,
"NaN",
100.0]}]
}}