SOLR — DataImportHandler — как сопоставить несколько объектов внутри одного списка объектов json

Я новичок в SOLR, я пытаюсь индексировать результаты запросов к БД оракула с помощью SOLR. Я написал config.xml и добавил индексы в schema.xml.

У меня есть несколько запросов в качестве подсущностей (с дочерним элементом = true) в моем файле config.xml. Многие запросы возвращают несколько строк. Например, у меня есть одна сущность как

<entity name="example_subentity" child="true" query="SELECT A,B from table_temp">
    <field column="A" name="a" />
    <field column="B" name="b" />
</entity>

который возвращает вывод как

"response":{"numFound":1,"start":0,"docs":[
      {
        "unique_key":"4493234234",
        "_version_":1560479076226957312,
        "_childDocuments_":[
        {
          "a" : "value_a_1",
          "b" : "value_b_1",
        },
        {
          "a" : "value_a_2",
          "b" : "value_b_2",
        }]
      }]}

то, что я пытаюсь достичь здесь, что-то вроде

 "_childDocuments_":[ 
      {"table_temp_response" :[
        {
          "a" : "value_a_1",
          "b" : "value_b_1",
        },
        {
          "a" : "value_a_2",
          "b" : "value_b_2",
        }]
        }]

Может ли кто-нибудь помочь мне, как я могу получить такой вывод с помощью DIH?

Просто обновление. Я ищу решение на стороне сервера, я могу сделать это с помощью java или SOLRJ на стороне клиента. Но у меня есть несколько клиентов, которые будут использовать ответ на запрос SOLR.


person ankur bansal    schedule 27.02.2017    source источник


Ответы (1)


если вы используете Solrj

JSONArray jArray = new JSONArray();

        for (int i = 0; i < docList.size(); i++) {
            JSONObject json = new JSONObject(docList.get(i));
            jArray.put(json);
        }

>

for (int i = 0; i < jArray.length(); i++) {
            JSONObject obj = objs.getJSONObject(i);
            obj.getString("a"));
person Osama Hashem    schedule 27.02.2017
comment
Спасибо за ответ, я думаю, мы можем изменить ответ solr в java. Но можем ли мы каким-либо образом изменить файл config.xml, чтобы после запроса мы получали структурированный ответ, даже если этот запрос делает любое количество клиентов? - person ankur bansal; 28.02.2017
comment
Есть ли способ сделать это на стороне сервера, я ищу масштабируемый способ. Так что несколько клиентов могут использовать solr здесь. - person ankur bansal; 01.03.2017