Pencarian Solr di beberapa tabel di Rails

Saya memiliki tiga tabel yang menyebutkan merek, situs, dan kategori item. Saya ingin melakukan fungsi pencarian di ketiga tabel secara bersamaan. Saya telah menggunakan solr untuk melakukan pencarian. Sebelumnya saya melakukan pencarian satu per satu. Artinya jika pengguna memasukkan 'adidas' maka saya mencari di tabel merek jika tidak dapat maka saya mencari di tabel situs dan seterusnya. Berdasarkan hasil yang diperoleh saya mencari di beberapa tabel lain katakanlah main_nav_url menggunakan brand_id atau site_id atau kategori_id dan mendapatkan kolom yang diperlukan dari tabel main_nav_url. Belakangan saya menemukan konflik ini seperti jika nama 'adidas' ada di tabel merek dan situs, saya hanya mendapatkan hasil pencarian merek.

Tolong bantu saya untuk memecahkan masalah ini di mana saya dapat mencari di ketiga tabel secara bersamaan, berdasarkan hasil yang diperoleh, ekstrak id merek dan id_situs kategori_id, dan melakukan satu pencarian lagi di tabel main_nav_url.


person user2218532    schedule 23.04.2013    source sumber
comment
halo, lihat permata pencarian permata Ransack, akan membantu untuk mencari data dengan tabel multipale sekaligus menggunakan permintaan pencarian lanjutan. silakan lihat tutorial tentang cast rails : 370.   -  person Bajirao Pheshwe    schedule 23.04.2013


Jawaban (1)


Saya mendapat jawabannya.

Lakukan penelusuran solr secara terpisah untuk mengambil id_merek,id_situs, dan id_kategorinya. Simpan id yang sesuai dalam array. Misalnya

@storesearch.results.each do |result|
    siteids << result.id
end

Bergantung pada panjang brandid,siteid,catid, lakukan pencarian solr di tabel main_nav_url. Dalam hal ini harus melakukan pencarian solr untuk 9 kasus berbeda. 1 kasus ditunjukkan di bawah ini.

if(siteids.length == 0 && brandids.length != 0 && catids.length != 0) @searchresults=MainNavigationUrl.search lakukan apa saja dengan :brand_id, brandids[0..brandids.length] dengan :main_category_id, catids [0..catids.length] ujung akhir

person user2218532    schedule 24.04.2013