2012-09-30 24 views

Trả lời

41

This comment nói nó có thể bằng cách sử dụng:.?

{!join from=fromField to=toField fromIndex=fromCoreName}fromQuery 

tôi đã thử nó bản thân mình, và đây là một nhiều ví dụ chi tiết: Có hai lõi

  • nhãn hiệu {id, name}
  • sản phẩm {id, tên, brand_id}

THƯƠNG HIỆU: {1, Apple}, {2, Samsung}, { 3, HTC}

HÀNG: {1, iPhone, 1}, {2, iPad 1}, {3, Galaxy S3, 2}, {4, Galaxy Note, 2}, {5, One X, 3}

http://example.com:8999/solr/brands/select?q=*:* & fq = {! Tham gia từ = brand_id đến = id fromIndex = products} tên: iPad

Điều này dịch sang một cái gì đó như:

SELECT b.* FROM brands b 
     INNER JOIN products p ON b.id=p.brand_id 
     WHERE p.name="iPad"; 

Kết quả sẽ là: {id: "1", và tên: "Apple"}

+3

Thx cho ví dụ tốt đẹp. Chính xác hơn tương đương SQL là 'SELECT b. * FROM brands b INNER JOIN sản phẩm p ON b.id = p.brand_id WHERE p.name =" iPad ";' vì Solr không thể cung cấp cho các trường của fromCore: - ( – arun

+1

Vâng, điều đó thật đáng buồn. Tôi đã chỉnh sửa ví dụ của mình. – mjalajel

+0

Truy vấn không hợp lệ, nó phải là: 'q = name: iPad & fq = {! Tham gia từ = brand_id đến = id fromIndex = products}' hoặc 'q = * : * & fq = {! tham gia từ = brand_id đến = id fromIndex = products} name: iPad'. 'q =:' không hợp lệ. – zengr

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