Więc zostały czytanie poniżej:MySQL Ranking trafności wyszukiwania niektóre kolumny wyższe
How can I manipulate MySQL fulltext search relevance to make one field more 'valuable' than another?
byłem zainteresowany w poniższej reakcji i starał się wdrożyć to z sukcesem.
SELECT url, keywords, title,
MATCH (keywords) AGAINST ('green watermelon') AS rel1,
MATCH (title) AGAINST ('green watermelon') AS rel2
FROM straight
WHERE MATCH (keywords,title) AGAINST ('green watermelon')
ORDER BY (rel1)+(rel2*1.5)
Mój jedyny problem jest następujący.
Jeśli użytkownik jest poszukiwanie powiedzieć „Green arbuza”, który odpowiada 3 rzędy w tabeli z 2 kolumny, jak poniżej:
+------------+------------+ | Keyword | Title | +------------+------------+ | Green | Green | | Green | Watermelon | | Watermelon | Watermelon | +------------+------------+
Chciałbym drugi rekord należy „Ranking” najpierw jako jej jest najbardziej trafny, ale wszystkie mają taką samą trafność dla wyszukiwanego hasła "Zielony arbuz", ponieważ "Zielony" jest używany dwa razy w obrębie słowa kluczowego i tytułu.
Najlepszym sposobem, jak sądzę, że można to rozwiązać, jest znalezienie zielonego słowa, gdy zwiększy ono trafność, powiedzmy 1, a kiedy indziej zobaczy słowo zielone, zwiększy je o 0, a jeśli zobaczy arbuza, podobnie. To dałoby drugi wynik, a ocena trafności 2, a pozostałe 2 rzędy - trafność równą 1. W związku z tym powinno być ono bardziej odpowiednie, jak powinno być. To będzie działać dla dłuższych terminów wyszukiwania podczas wyszukiwania w większej bazie danych.
EDIT:
Jeśli to możliwe mogę utworzyć kolejną kolumnę, która ma zarówno tytuł i słowa kluczowe, więc powiedzieć, że kolumna jest nazywany „mashup” tabela będzie wyglądać bardziej jak:
+------------+------------+-----------------------+ | Keyword | Title | Mashup | +------------+------------+-----------------------+ | Green | Green | Green Green | | Green | Watermelon | Green Watermelon | | Watermelon | Watermelon | Watermelon Watermelon | +------------+------------+-----------------------+
Wtedy „jeśli to możliwe” my musiałaby de dupe pola więc skończyć jak:
+------------+------------+-----------------------+ | Keyword | Title | Mashup | +------------+------------+-----------------------+ | Green | Green | Green | | Green | Watermelon | Green Watermelon | | Watermelon | Watermelon | Watermelon | +------------+------------+-----------------------+
Następnie wyszukiwanie będzie działać zgodnie z przeznaczeniem z doskonałymi wynikami trafności.
góry dzięki
Można ustawić do sqlfiddle? – Mihai
@Mihai Przepraszam, że nigdy wcześniej tego nie robiłem, czy to pozwoli ci spojrzeć na to, czego szukasz? – BubblewrapBeast
tak, chcę trochę się z tym bawić, gdybym wiedział dokładnie, co było, co dałbym odpowiedź. Wystarczy stół z kilkoma rzędami. – Mihai