BAUER 
15.02.2013 11:21:46
Book 21:43:24
KRENCL 15.02.2013 10:49:55: diky
napadlo mě řešení následující:
-------------
- udělám si navíc tabulku "vazba" a "slova"
- pro každý záznam v tabulce kde se hnedá si hned po uložení udělám její otisky v tabulce vazba a slova, dle klíče níže
- hledat budu v tabulce slova, k ní prihazovat pomoci tabulky "vazba" správne klice z hlavní tabulky.
-----------
data:
tabulka hlavni:
id | nadpis | text
------------------
1 | velká | hlava spadla
2 | malá | hlava nespadla
3 | nikdy | neříkej hlava spadla
4 | hlava | hlava
5 | nejsem| velká hlava
tabulka slova:
id | slovo
1 | velka
2 | hlava
3 | spadla
4 | mala
5 | nespadla
6 | nikdy
7 | nerikej
8 | nejsem
tabulka slova bude obsahovat slova vetsi jak 2 znaky, bez diakritiky, ocistene od teček, čárek, otazniků a hacku a carek za vetama, vyhodim cisnek znaky a odstranim diakritiku
tabulka vazba:
id | id_slova | id_hlavni
--------------------------
1 | 1 | 1
2 | 1 | 5
3 | 2 | 1
4 | 2 | 2
5 | 2 | 3
6 | 2 | 4
7 | 2 | 5
8 | 3 | 1
9 | 3 | 3
10 | 4 | 2
11 | 5 | 2
12 | 6 | 3
13 | 7 | 3
14 | 8 | 5
tabulka vazba je jasna...
indexy:
v podstatě jen na sloupec slovo v tabulce slova! (1. vyhoda!)
hledani:
- budu hledat jen LIKE (nebo LIKE 'slovo%') - takze bude pracovat index a bude to pekelne rychly - 2. vyhoda
- hledani celych frazi: "velka hlava" - v prvni vazi me mysql vytahne jen ty co obsahuje obe slova a v tabulce "hlavni" pak jen vyselektuji ty ktere to obsahuji. Tedy nebudu hledat v 70K ale treba jen ve 20 zaznamech - rychlost (treti vyhoda)
---------
ted uz to jen naprogramovat, ach jo - to aby to z textu delalo ty sql dotazy ;o)