我有像这样的mongodb文件,
{
"_id" : ObjectId("5993d55cebb06d20f08521ad"),
"LoginInfoId" : NumberInt(410),
"EstablishmentName" : "xyz",
"ShopCategory" : "Crockery",
"likes" : NumberInt(21),
"ShopCats" : [ 1,5,3 ]
}
{
"_id" : ObjectId("5993d55cebb06d20f088871ad"),
"LoginInfoId" : NumberInt(411),
"EstablishmentName" : "abc",
"ShopCategory" : "Crockery",
"likes" : NumberInt(51),
"ShopCats" : [ 1,8,9 ]
}
我需要将字段ShopCats
索引到solr字段中作为逗号分隔值
像这样,
“ShopCats”:[1,2,3]
我需要使用这些值在solr search
中执行 filterquery我尝试了一些架构字段定义
<field name="ShopCats" type="commaDelimited" indexed="true" stored="true" multiValued="true" />
<fieldType name="commaDelimited" class="solr.TextField">
<analyzer>
<tokenizer class="solr.PatternTokenizerFactory" pattern=",\s*" />
</analyzer>
</fieldType>
MongoDb文档字段ShopCats
仍未编入solr
索引。
答案 0 :(得分:0)
我假设您使用Mongo连接器,如果是,则Mongo连接器展开阵列,以便下面
{
"_id" : ObjectId("5993d55cebb06d20f08521ad"),
"LoginInfoId" : NumberInt(410),
"EstablishmentName" : "xyz",
"ShopCategory" : "Crockery",
"likes" : NumberInt(21),
"ShopCats" : [ 1,5,3 ]
}
在编制索引之前将更改为以下
{
"_id" : ObjectId("5993d55cebb06d20f08521ad"),
"LoginInfoId" : NumberInt(410),
"EstablishmentName" : "xyz",
"ShopCategory" : "Crockery",
"likes" : NumberInt(21),
"ShopCats.0" : 1,
"ShopCats.1" : 5,
"ShopCats.2" : 3
}
只要有子文档,就会发生这种情况,并且Solr没有“子文档”支持/ 您可以使用schema.xml中的copyField指令来解决这个问题。
我希望这会有所帮助。