2012-09-30 23 views

cevap

41

This comment mümkün olduğunu söylüyor kullanarak:.?

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

kendim denedim ve burada daha var detaylı örnek:İki çekirdek

  • markalar {id, isim}
  • ürünleri {id, ad, brand_id}

MARKALARI: {1, elma}, {2, Samsung}, { 3 HTC}

ÜRÜNLER: {1, iPhone, 1}, {2, iPad 1}, {3, Galaxy S3, 2}, {4, Galaxy Note, 2}, {5, Tek X, 3}

http://example.com:8999/solr/brands/select?q=*:* & fq = isim {= id fromIndex = ürünlerine = brand_id dan katılmak!}: IPad

Bu şeye çevirir gibi:

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

Sonucu olacaktır: {id: "1", ad: "Elma"} güzel örneğin

+3

Thx. Daha kesin olarak, SQL eşdeğeri 'SELECT b. * Markalardan B INNER JOIN ürünleri p ON b.id = p.brand_id WHERE p.name =" iPad ";' Solr, fromCore'un alanlarını veremediği için: - ( – arun

+1

Evet, bu kesinlikle doğru. Örneğimi düzenledim. – mjalajel

+0

Sorgu geçersiz, olmalıdır: q = ad: iPad & fq = {! Join from = brand_id to = id fromIndex = products} 'veya' q = * : * & fq = {! join = brand_id = = fromIndex = ürünler} name: iPad'. 'q =:' geçersiz – zengr