2014-10-15 20 views
12

Tôi muốn lập chỉ mục & tìm kiếm json lồng nhau trong solr. Đây là mã json tôiLàm thế nào để lập chỉ mục và tìm kiếm Json lồng nhau trong 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" 
 
     } 
 
    }

Khi tôi cố gắng Index, tôi nhận được báo lỗi "Lỗi phân tích giá trị trường JSON. OBJECT_START bất ngờ"

Khi chúng tôi cố gắng sử dụng Dấu phân Trường & chỉ mục, chúng tôi không thể tìm kiếm bằng trường đa giá trị? Quay lại "Trường chưa xác định"

Ngoài ra, xin vui lòng tư vấn nếu tôi cần thực hiện bất kỳ thay đổi nào trong tệp schema.xml?

Trả lời

6

Bạn đang lồng ghép tài liệu con trong tài liệu của mình. Bạn cần phải sử dụng cú pháp thích hợp cho các tài liệu con lồng nhau trong 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" 
     } 
    ] 
    } 
] 

Hãy xem mô tả tài liệu con JSON này và tham gia khối.

+0

chỉ làm việc với Solr 5.3+ – alex

0

Sử dụng định dạng được đề cập bởi @qux bạn sẽ phải đối mặt "Expected: OBJECT_START but got ARRAY_START at [16]", "code": 400 như khi JSON bắt đầu với [....] sẽ phân tích như một mảng 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" 
 
     } 
 
    }

Định dạng trên là chính xác. Về tìm kiếm. Vui lòng sử dụng chỉ mục để tìm kiếm các phần tử của mảng JSON. Giải pháp cho việc này có thể giữ toàn bộ đối tượng JSON bên trong đối tượng JSON khác và lập chỉ mục nó

Tôi đã đề xuất giữ toàn bộ dữ liệu bên trong một đối tượng JSON khác. Bạn có thể thử các cách sau

{ 
"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

'Lỗi phân tích cú pháp JSON giá trị trường. OBJECT_START không mong đợi tại [112], mã lỗi trường = generaltags' là '400' với mã mẫu của bạn. Bất kỳ ý tưởng? – Sam

+0

ví dụ giống với ví dụ được đăng bởi @ w3lessons. –

-2

thấy cú pháp trong 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." 
    } 
    ] 
} 
]' 

hỗ trợ từ Solr 5.3

Các vấn đề liên quan