Comment implémenteriez-vous un moteur de recherche personnalisé?Moteur de recherche personnalisé
Que pensez-vous quelque chose comme ceci:
SELECT *
FROM jobs
WHERE job_id IN (
SELECT job_id
FROM job_words
WHERE word_id IN (SELECT word_id FROM words w WHERE text = 'carpenter'))
AND job_id IN (
SELECT job_id
FROM job_words
WHERE word_id IN (SELECT word_id FROM words w WHERE text = 'buildings'))
ou ceci:
SELECT j.*
,s.matches
FROM jobs as j INNER JOIN
(SELECT jw.job_id, count(*) as matches
FROM job_words AS jw
INNER JOIN (SELECT word_id FROM words w WHERE text IN ('carpenter', 'buildings')) AS w ON w.word_id = jw.word_id
GROUP BY jw.job_id) as s ON s.job_id = j.job_id
Pour quelle base de données? –
Peu importe. Je pense à créer ma propre façon de chercher au lieu d'utiliser des fonctions intégrées à la base de données. – Eduardo
En fait, c'est le cas - "SQL" signifie "Structured Query Language", pas "Standardisé". À ma connaissance, la recherche en texte intégral (FTS) n'est pas ANSI - vous devez utiliser un outil FTS tiers comme Sphinx pour que les choses soient portables entre les bases de données. Les fonctions de chaînes ne sont pas standardisées entre les bases de données, donc bonne chance! –