2014-10-15 12 views
12

Chcę indeksować & wyszukaj zagnieżdżone json w solr. Oto mój kod JSONJak indeksować i szukać Zagnieżdżone Json w Solr 4.9.0

{ 
 
     "id": "44444", 
 
     "headline": "testing US", 
 
     "generaltags": [ 
 
      { 
 
       "type": "person", 
 
       "name": "Jayalalitha", 
 
       "relevance": "0.334", 
 
       "count": 1 
 
      }, 
 
      { 
 
       "type": "person", 
 
       "name": "Kumar", 
 
       "relevance": "0.234", 
 
       "count": 1 
 
      } 
 
     ], 
 
     "socialtags": { 
 
      "type": "SocialTag", 
 
      "name": "US", 
 
      "importance": 2 
 
     }, 
 
     "topic": { 
 
      "type": "Topic", 
 
      "name": "US", 
 
      "score": "0.936" 
 
     } 
 
    }

Kiedy próbuję Index, dostaję błąd „Błąd parsowania JSON wartości pola. Nieoczekiwany OBJECT_START”

Kiedy staraliśmy się używać wielowartościowe Field & indeks, nie mogliśmy wyszukiwać przy użyciu pola wielowartościowego? Powracające "pole niezdefiniowane"

Także proszę o poradę, czy muszę wprowadzić jakieś zmiany w pliku schema.xml?

Odpowiedz

6

Użytkownik zagnieżdża dokumenty podrzędne w dokumencie. Trzeba użyć właściwej składni zagnieżdżonych dokumentów podrzędnych w JSON:

[ 
    { 
    "id": "1", 
    "title": "Solr adds block join support", 
    "content_type": "parentDocument", 
    "_childDocuments_": [ 
     { 
     "id": "2", 
     "comments": "SolrCloud supports it too!" 
     } 
    ] 
    }, 
    { 
    "id": "3", 
    "title": "Lucene and Solr 4.5 is out", 
    "content_type": "parentDocument", 
    "_childDocuments_": [ 
     { 
     "id": "4", 
     "comments": "Lots of new features" 
     } 
    ] 
    } 
] 

Zapraszamy do obejrzenia tej article który opisuje dokumenty podrzędne JSON i blok łączy.

+0

działa tylko z Solr 5.3+ – alex

0

Korzystanie format wspomniany przez @qux będziesz musiał stawić czoła "Expected: OBJECT_START but got ARRAY_START at [16]", "code": 400 jako JSON, gdy wychodząc z [....] będzie analizowany jako tablicy JSON

{ 
 
     "id": "44444", 
 
     "headline": "testing US", 
 
     "generaltags": [ 
 
      { 
 
       "type": "person", 
 
       "name": "Jayalalitha", 
 
       "relevance": "0.334", 
 
       "count": 1 
 
      }, 
 
      { 
 
       "type": "person", 
 
       "name": "Kumar", 
 
       "relevance": "0.234", 
 
       "count": 1 
 
      } 
 
     ], 
 
     "socialtags": { 
 
      "type": "SocialTag", 
 
      "name": "US", 
 
      "importance": 2 
 
     }, 
 
     "topic": { 
 
      "type": "Topic", 
 
      "name": "US", 
 
      "score": "0.936" 
 
     } 
 
    }

Powyższy format poprawny. Odnośnie wyszukiwania. Uprzejmie użyj indeksu do wyszukania elementów tablicy JSON. Rozwiązaniem tego może być utrzymanie całego obiektu JSON wewnątrz innego obiektu JSON i indeksowanie go

ja sugerowałem, aby utrzymać całość danych wewnątrz innego obiektu JSON. Można spróbować następujący sposób

{ 
"data": [ 
    { 
     "id": "44444", 
     "headline": "testing US", 
     "generaltags": [ 
      { 
       "type": "person", 
       "name": "Jayalalitha", 
       "relevance": "0.334", 
       "count": 1 
      }, 
      { 
       "type": "person", 
       "name": "Kumar", 
       "relevance": "0.234", 
       "count": 1 
      } 
     ], 
     "socialtags": { 
      "type": "SocialTag", 
      "name": "US", 
      "importance": 2 
     }, 
     "topic": { 
      "type": "Topic", 
      "name": "US", 
      "score": "0.936" 
     } 
    } 
] 
} 
+0

Błąd parsowania JSON wartości 'pola. Nieoczekiwany OBJECT_START w [112], pole = ogólny kod błędu "400" z przykładowym kodem. Jakieś pomysły? – Sam

+0

przykład jest taki sam jak ten wysłany przez @ w3lessons. –

-2

zobaczyć składnia w http://yonik.com/solr-nested-objects/

$ curl http://localhost:8983/solr/demo/update?commitWithin=3000 -d ' 
[ 
{id : book1, type_s:book, title_t : "The Way of Kings", author_s : "Brandon Sanderson", 
    cat_s:fantasy, pubyear_i:2010, publisher_s:Tor, 
    _childDocuments_ : [ 
    { id: book1_c1, type_s:review, review_dt:"2015-01-03T14:30:00Z", 
     stars_i:5, author_s:yonik, 
     comment_t:"A great start to what looks like an epic series!" 
    } 
    , 
    { id: book1_c2, type_s:review, review_dt:"2014-03-15T12:00:00Z", 
     stars_i:3, author_s:dan, 
     comment_t:"This book was too long." 
    } 
    ] 
} 
]' 

obsługiwanym z solr 5,3

Powiązane problemy