Table: Word (word_id, word)
Data:
1 | This
2 | is
3 | a
4 | test
5 | another
6 | webForum
Table: Title (title_id, created)
Data:
1 | 2009-10-01
2 | 2009-10-02
3 | 2009-10-02
Table: Title_Word (title_id, word_id, word_order)
1 | 1 | 1
1 | 2 | 2
1 | 3 | 3
1 | 4 | 4
2 | 1 | 1
2 | 2 | 2
2 | 5 | 3
2 | 4 | 4
3 | 6 | 1
4 | 1 | 1
4 | 4 | 2
Alltså fyra titlar
1 - This is a test
2 - This is another test
3 - webForum
4 - This test
Jag vill kunna söka bland titlarna, kan inte komma på hur jag ska få ihop SQL-frågan så att jag bara får ut de titlar som matchar alla ord man söker på.
Sökning:
"This is" => 1, 2
"is a" => 1
"test" => 1, 2, 4
Nästa steg är att få så att sökningen kräver att orden är i rätt ordning.
Sökning:
"is test" => inget
"This test" => 4
Använder PHP och MySQL, versionerna har jag inte riktigt koll på.
Jag försökte titta lite på hur phpBB hade gjort, nackdelen var att deras php-sida för sökning var på ca 1400 rader. Det verkade som att de gjorde en sökning för varje ord och sen slog ihop resultaten. Måste man göra det eller kan man få ihop det i en enda sql-fråga?
Någon som kan hjälpa mig med hela frågan eller kanske guida mig i rätt riktning?