Próbuję dowiedzieć się, jak zamówić elementy z pasującymi tagami przez liczbę pasujących tagów.Zamawianie elementów z pasującymi tagami według liczby tagów pasujących do
Powiedzmy masz trzy MySQL tabele:
tags(tag_id, title)
articles(article_id, some_text)
articles_tags(tag_id, article_id)
Teraz powiedzmy masz cztery artykuły gdzie:
article_id = 1
ma tagów " humor, "" f unny "i" zabawny ".
article_id = 2
ma tagi "zabawny", "głupi" i "głupkowaty".
article_id = 3
ma tagi "zabawny", "głupi" i "głupkowaty".
article_id = 4
ma tag "całkowicie poważne".
Musisz znaleźć wszystkie artykuły związane z article_id = 2
według co najmniej jednego pasującego tagu i zwrócić wyniki w kolejności najlepiej pasujących. Innymi słowy, article_id = 3
powinno być na pierwszym miejscu, z article_id = 1
sekundą, a article_id = 4
nie powinno się w ogóle pokazywać.
Czy jest to coś, co można zrobić w zapytaniach SQL lub samodzielnie, czy jest to lepsze rozwiązanie dla czegoś takiego jak Sphinx? Jeśli jest to pierwsze, jakiego rodzaju zapytanie powinno zostać wykonane i jaki rodzaj indeksów powinien zostać stworzony dla najbardziej wydajnych wyników? Jeśli to drugie, proszę rozwiń.
Druga składnia jest fantastyczna i działa dokładnie tak, jak potrzebowałem. Dzięki wielkie! –