2010-11-17 36 views
6

Tôi đang cố gắng ánh xạ một vài thực thể từ cơ sở dữ liệu hiện có sang SOLR.Lập bản đồ một-nhiều đối tượng trong SOLR

Các bảng là:

khách sạn: hotel_id với HOTEL_NAME

HotelToCategory: hotel_id category_id tỷ lệ

Thể loại: category_id tên giá trị

Làm thế nào tôi có thể sử dụng D ataImportHandler để tạo các tài liệu như sau:

{ 
    hotel_name: 'name', 
    hotel_id: 1, 
    categories: [ 
     { category_name: 'cname', 
     value: 'val', 
     rate: 3, 
     } 
    ] 
} 

Mọi trợ giúp sẽ được đánh giá cao!

Trả lời

6

Mối quan hệ được lập chỉ mục bằng cách sử dụng các thực thể được xếp chồng lên nhau trong DIH. Có một cái nhìn trong DIH page trong Solr wiki.

Ngoài ra còn có một vài ví dụ cơ bản về điều này bao gồm trong bản phân phối Solr, có một cái nhìn trong ví dụ/ví dụ-DIH.

Có một giới hạn ở đây mặc dù, solr không (hiện tại) hỗ trợ các mối quan hệ giữa các tài liệu chỉ mục, vì vậy bạn sẽ phải tìm một cách giải quyết để lập chỉ mục này. Ví dụ bằng cách chỉ lưu trữ dữ liệu hiển thị trong một lĩnh vực không được lập chỉ mục (mà có thể yêu cầu reindexing rất thường xuyên):

<document> 
    <entity name="hotel" query="select * from hotel"> 
     <field column="id" name="hotel_id" /> 
     <field column="hotel_name" name="hotel_name" /> 
     <entity name="hotel_category_display" 
       query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION"> 
      <field column="category" name="category" /> 
     </entity> 
</document> 

Hoặc bằng cách lưu trữ chỉ mục ID và làm tra cứu (hoặc chống lại các cơ sở dữ liệu hoặc các danh mục chỉ số riêng biệt và tra cứu chống lại Solr) tại thời điểm tìm kiếm:

<entity name="hotel_category_display" 
     query="SELECT STATEMENT THAT RETURNS JSON REPRESENTATION"> 
    <field column="category" name="category" /> 
</entity> 
+0

Cách này xử lý nhiều khách sạn_catagory_disply cho mỗi khách sạn? Có điều gì cần được thêm vào giản đồ không? – soandos

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