Многозначная задача Solr

Примите во внимание следующее: 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. Это отношение "один ко многим". Но они сгруппированы по именам столбцов. Заранее спасибо.

1
задан sathis 25 August 2010 в 12:55
поделиться

3 ответа

Если первый фрагмент является фактическим ответом 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"
}]

Если это предположение верно, то я бы посоветовал просмотреть вашу логику индексации. .

0
ответ дан 2 September 2019 в 21:51
поделиться

Вы упомянули, что будете использовать этот JSON из браузера. Таким образом, вы можете использовать jQuery или любую другую библиотеку javascript для преобразования необработанного ответа Solr JSON в нужную вам структуру.

2
ответ дан 2 September 2019 в 21:51
поделиться

Эти выходные данные создаются JSONResponseWriter Solr. Его вывод нельзя изменить с помощью конфигурации. Но что вы можете сделать, так это создать свою собственную версию JSONResponseWriter для получения желаемого результата. Вы можете зарегистрировать новый ResponseWriter, добавив тег queryResponseWriter в solrconfig.xml.

0
ответ дан 2 September 2019 в 21:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: