Примите во внимание следующее: json-ответ, который я получаю от solr , если я использую multivalued = true для полей.
{
"id":["1","2","3"],
"TS":["2010-06-28 00:00:00.0","2010-06-28 00:00:00.0","2010-06-28 00:00:00.0"],
"Type":["VIDEO","IMAGE","VIDEO"]
}
but i need the response like this
{
"0":["1","2010-06-28 00:00:00.0","VIDEO"],
"1":["2","2010-06-28 00:00:00.0","IMAGE"],
"2":["3","2010-06-28 00:00:00.0","VIDEO"]
}
How can i get this.Any help would be appreciated. Thanks in advance.
** Обновление: ** {{ 1}} На самом деле на первом уровне это не проблема. Когда мы собираемся
более чем на один уровень, тогда возникает только проблема. Сейчас я помещаю {{1} } весь ответ здесь, чтобы он был понятен.
{
"responseHeader":{
"status":0,
"QTime":0,
"params":{
"facet":"true",
"indent":"on",
"start":"0",
"q":"laptop",
"wt":["json",
"json"],
"rows":"200"}},
"response":{"numFound":1,"start":0,"docs":[
{
"createdBy":"0",
"id":194,
"status":"ACTIVE",
"text":"Can i buy Sony laptop?",
"ansTS":["2010-07-01 00:00:00.0","2010-08-06 15:11:55.0","2010-08-11 15:28:13.0","2010-08-11 15:30:49.0","2010-08-12 01:45:48.0","2010-08-12 01:46:18.0"],
"mediaType":["VIDEO","VIDEO","VIDEO"],
"ansId":["59","76","77","78","80","81"],
"mediaId":[24,25,26],
]},
]
},
"facet_counts":{
"facet_queries":{},
"facet_fields":{
"catName":[]},
"facet_dates":{}}}
посмотрите на массивы mediaId, mediatype, ansTS. Это отношение "один ко многим". Но они сгруппированы по именам столбцов. Заранее спасибо.
Если первый фрагмент является фактическим ответом solr, который вы получаете, то, скорее всего, у вас есть ошибка в фидере (коннекторе/краулере и т. д.). Похоже, у вас есть только один проиндексированный документ (соответствующий вашему запросу), в котором есть все значения, которые вы ожидаете от 3 документов.
Предполагая, что у вас есть 3 документа, аналогичные ожидаемому результату, тогда фактический результат solr wt=json
будет содержать:
[{
"id":"1",
"TS":"2010-06-28 00:00:00.0",
"Type":"VIDEO"
},
{
"id":"2",
"TS":"2010-06-28 00:00:00.0",
"Type":"IMAGE"
},
{
"id":"3",
"TS":"2010-06-28 00:00:00.0",
"Type":"VIDEO"
}]
Если это предположение верно, то я бы посоветовал просмотреть вашу логику индексации. .
Вы упомянули, что будете использовать этот JSON из браузера. Таким образом, вы можете использовать jQuery или любую другую библиотеку javascript для преобразования необработанного ответа Solr JSON в нужную вам структуру.
Эти выходные данные создаются JSONResponseWriter Solr. Его вывод нельзя изменить с помощью конфигурации. Но что вы можете сделать, так это создать свою собственную версию JSONResponseWriter для получения желаемого результата. Вы можете зарегистрировать новый ResponseWriter, добавив тег queryResponseWriter в solrconfig.xml.