Tôi cố gắng để thiết lập một chỉ số với nhiều-nhiều mối quan hệ cơ bản giữa tác phẩm nghệ thuật và thể loại Sphinx:index Sphinx với nhiều-nhiều mối quan hệ
artworks
---------------
id
title
description
genres
---------------
id
name
artwork_genres
---------------
artworks_id
genres_id
Trong file Sphinx cấu hình của tôi, tôi có một cái gì đó như
source src_artwork {
...
sql_query = SELECT id, title, description FROM artworks
sql_attr_multi = uint tag from query; SELECT id,name FROM genres
}
Đây là từ các tài liệu, như xa như tôi có thể hiểu được, trên multi-valued attributes và sql_attr_multi
Nhưng rõ ràng là không có đề cập đến các bảng tie trong đó và tôi không thể hiểu làm thế nào mà được đưa vào cấu hình. Tôi chỉ muốn tìm kiếm "Ấn tượng" để tạo ra các tác phẩm nghệ thuật thuộc thể loại đó (có trọng số thích hợp nếu cụm từ được nhìn thấy trong các trường khác)
phải thêm 'GROUP BY id' vào cuối câu lệnh SQL và nó đã hoạt động! Tôi đã nghe nói về 'GROUP_CONCAT' nhưng tôi đã không đặt nó lại với nhau rằng nó có thể làm cho danh sách các mối quan hệ như thế này - loại một vấn đề cũ trong SQL. Cuộc sống khổng lồ trong trường hợp này. Cảm ơn! – sbeam
Ồ vâng - điểm tốt. Tôi đã chỉnh sửa câu trả lời để phản ánh nhận xét của bạn. Tôi vui vì bạn đã làm nó hoạt động! – richbs
Thực sự đã làm các trick. Cảm ơn! – Samin