我想知道是否可以从SolrJ发布JSON / XML strins。
我目前正从某些消息服务接收文档作为JSON字符串。
一个这样的文件如下:
{
"id":"1","name":"Item 1","price":10,
"producer":{"id":"10","name":"Prod 1",
"address": {"id":"100","city":"City 1","zipcode":95000}
}
}
我是否需要将此字符串转换为SolrInputDocument以将其提供给Solr?
我目前正在使用SolrJ,并且没有看到直接向Solr提供JSON的API。
(我看到Solr附带的post.jar能够将json / xml文件直接发布到Solr,我希望通过SolrJ API获得相同的行为)
如果没有这样的API,我该如何将字符串转换为SolrInputDocument?
答案 0 :(得分:0)
您无需将其转换为SolrInputDocument。看到 http://wiki.apache.org/solr/Solrj#Directly_adding_POJOs_to_Solr
但Solr不允许嵌套字段。您需要展平您的JSON,即仅将标量和数组(或列表)保留为多值字段。你可以像这样转换它:
{
"id":"1",
"name":"Item 1",
"price":10,
"producer_id":"10",
"producer_name":"Prod 1",
"producer_address_id":"100",
"producer_address_city": "city1",
"producer_address_zipcode":95000
}
或者您也可以将生产者地址保存在多值字段中,如下所示:
{
"id":"1",
"name":"Item 1",
"price":10,
"producer_id":"10",
"producer_name":"Prod 1",
"producer_address":["100", "city1", "95000"]
}
您应该选择哪一个取决于您的查询要求。