如何在SOLR中创建嵌套的JSON对象?

时间:2018-09-12 22:42:35

标签: elasticsearch solr

我正在SOLR数据库中转储数据。早些时候,我使用Elastic Search,它允许我存储嵌套的JSON对象。

在SOLR中插入时,有什么方法可以动态创建嵌套的JSON值?

我正在使用JAVA作为后端语言。我的代码是:

SolrInputDocument document = new SolrInputDocument();
document.addField("UUID", eventID);
document.addField("eventCategory", eventCategory);
.
.
.
.
document.addField("source", source);

I want something like this: 
{
"UUID":"1",
"source":abcd,
"eventCategory": {
    "event1":"a",
    "event2":"b",
    "event3":"c"
 }
}

2 个答案:

答案 0 :(得分:0)

Solr是平面模式文档的集合。您可以将动态字段添加到solr,但它不支持嵌套的JSON对象。

但是您可以使用以下资源中指定的嵌套文档。

https://lucene.apache.org/solr/guide/6_6/uploading-data-with-index-handlers.html

但是查询子文档并不像ElasticSearch或MongoDB那样简单。

答案 1 :(得分:0)

您可以使用addChildDocument将嵌套文档添加到父文档中。所以代码是:

SolrInputDocument document = new SolrInputDocument();
document.addField("UUID", eventID);
document.addField("eventCategory", eventCategory);
...
SolrInputDocument child = new SolrInputDocument();
...
document.addChildDocument(child);