Den kjappeste måten å finne anagrammer på?

Les hele artikkelen

Hei,

Jeg har en MySQL-tabell med 267.751 ord. Jeg prøver finne den kjappeste måten å finne anagrammer på, uten å måtte lete gjennom hele tabellen for hvert søk, noe som ville vært utrolig ineffektivt. 

For ordensskyld: Et anagram er et ord som er blitt satt sammen ved å stokke rundt på bokstavene i et annet ord.

Jeg har kommet opp med en metode der jeg lager en ny kolonne, hvor bokstavene i alle ordene er sortert alfabetisk. Før jeg foretar et søk, sorterer jeg bokstavene i ordet alfabetisk, og søker i den nye kolonnen. Denne metoden viser seg å være mye kjappere. 

Metoden fungerer bra, men problemet er ikke å finne eksakte anagrammer (ord med samme antall bokstaver). Men å finne anagrammer du kan lage med en bokstav mindre, to bokstaver mindre, tre bokstaver mindre, og helt ned til 2 bokstaver. Det begynner plutselig å bli mange kombinasjoner.

Det er mange anagram-søkemotorer der ute, så dette burde ikke være vanskelig, men jeg klarer ikke å komme opp med en effektiv metode å gjøre det på. Er det noen som har noen ideer? Hvordan klarer de å gjøre det så kjapt?

Takk