Jump to content
php.lv forumi

kā panākt indeksētu LIKE '%substring%' funkcionalitāti


gurkjis

Recommended Posts

kā zināms, SELECT * FROM products WHERE article LIKE '%substring%' neizmanto indeksu, kā dēļ šāda meklēšanas operācija ir ļoti lēna pie liela ierakstu daudzuma. Zinu, ka LIKE 'prefix%' izmantos indeksu, taču tas neder - vajag lai meklē jebkur iekš stringa.

 

MySQL FULLTEXT indekss arī neder - tas prot meklēt tikai veselus vārdus.

 

Esmu skatījies uz http://www.sphinxsearch.com/ , kas pie attiecīgas nokonfigurešanas var meklēt substringus, taču šim mīnuss tāds,ka tad ir speciāli uz servera jāinstalē šis softs.

 

Kādas idejas, varbūt kāds saskāries ar līdzīgu problēmu ?

Link to comment
Share on other sites

Esmu skatījies uz http://www.sphinxsearch.com/ , kas pie attiecīgas nokonfigurešanas var meklēt substringus, taču šim mīnuss tāds,ka tad ir speciāli uz servera jāinstalē šis softs.

Vispar jau codez mineja, ka bes specila softa neiztikt, tik skjiet ka Spinx bija modulis ko vareja pievienot pasham MySql (sen tas bij, kad ar shamo kramejos)

Bet nu atrdarbiiba (mekleshanas) pieaug vismaz 10X (ja labi nokonfigure tad ari visas 100X )

Tik skjiet ka bija neliela problema ar to ka nacas katru reizi prindekseet to Spxins indeksu (ja nepievienoji vinju pie MySql) dazreiz tas nav buutiski, bet dazreiz tas ir kritiski :(

Link to comment
Share on other sites

Kādas idejas, varbūt kāds saskāries ar līdzīgu problēmu ?

 

Jā es kā analītiķis esmu ntās reizes saskāries ar šādu problēmu jeb pareizāk izsakoties vēlmi no klienta puses. Mani argumenti līdz šim ir bijuši šādi:

1) mēs nebūvējam krustvārdu mīklu minēšanas sistēmu (piemēram, otrais burts a, tad 2 burti pa vidu, tad s)

2) atrast citu svarīgu kritēriju, kas būtiski samazina datu apjomu un tad ja nu ļoti gribās meklēt apakšvirkni samazinātajā kopā

3) ja nekas cits neatliek, tad skaidri un nepārprotami paziņot un fiksēt rakstiskā protokolā, ka šis pasākums būs lēns, bremzīgs un kas vēl ļoti svarīgi čakarēs ne tikai konkrēto lietotāju, bet diemžēl arī visus viņa kolēģus, jo tiem tiks norauti resursi, ko būs monopolizējis krustvārdu mīklu minētājs. Parasti pēc tam šī iespēja vismaz netiek likta kā noklusētā un/vai tikai spec gadījumos (tiesības piemēram tikai ierobežotam lietotāju loka, kas izceļas ar zināmām saprāta pazīmēm).

 

Protams, esmu gatavs piekrist, ka krustvārdu mīklu minēšanas sistēmām, arheoloģisko pētījumu sistēmām, šādām tādām izziņas iestādēm, iespējams, ka reizēm kaut ko tādu tiešām vajag :)

 

Gints Plivna

http://datubazes.wordpress.com

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...