Solr Многозначная проблема - PullRequest
       6

Solr Многозначная проблема

1 голос
/ 25 августа 2010

Рассмотрим следующее. Ответ json, который я получаю от solr , если я использую многозначное = 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.
 **Update :**
    Actually at the first level its not a problem. When we are going

более одного уровня, тогда только проблема возникает. сейчас я ставлю весь ответ здесь, чтобы сделать это ясно.

{
 "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. Его отношения один ко многим. Но они сгруппированы по именам столбцов. Спасибо заранее.

Ответы [ 3 ]

2 голосов
/ 25 августа 2010

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

0 голосов
/ 25 августа 2010

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

0 голосов
/ 25 августа 2010

Если первый фрагмент является фактическим ответом solr, который вы получаете, то, скорее всего, у вас есть ошибка в вашем фидере (соединитель / сканер / и т. Д.).Похоже, у вас есть только один индексированный документ (соответствующий вашему запросу), который имеет все значения, которые вы ожидаете от 3 документов.

Если у вас есть 3 документа, аналогичных ожидаемому результату, то фактический solrwt=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"
}]

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

...