IM24LV Posted March 7, 2008 Report Share Posted March 7, 2008 (edited) Varbūt kādam ir zināma kāda ārzemju lapa ar ieteikumiem, kā izveidot kaut cik gudru meklēšanas sistēmu? Pašlaik man ir pats elementārākais - meklēšanā ierakstām vārdu, un ja tādu vārdu DB atrod, tad izvada, ja neatrod bb. bet problēmas sākas ar to, ja ievada divus vārdus u.t.t. ja atkal netiek atrasta tieša sakritība, tad neko neizvada, kaut arī kkas tāds DB ir :) Zinu ka viens risinājums varētu bū Custom google search, bet tas nav tas labākais, sakarā ar to, ka Googles "zirneklīši" visu "kešo" ilgākā laika posmā, un tas šajā gadienā neder :) Edited March 7, 2008 by IM24LV Link to comment Share on other sites More sharing options...
Mikijs Posted March 7, 2008 Report Share Posted March 7, 2008 njus =] vienkarsi tak pac piesdeies uzprojekte planu un veido ;) piem search.php * meklesanas forma kas pec posta inkludo piem "results.php" <form type='post' action='search.php'> <div align='center'> Meklējamais vārds<br /> <input type='text' name='q' /> <input type='submit' value='>' /> </div> </form> <?if($_POST['q'])include("results.php");?> results.php * meklesanas rezultatu fails <?include('config.php'); // sql konekcija echo '<hr />'; $q=htmlspecialchars($_POST['q']); if($q=="")die("<div align='center'><b>Ievadiet meklējamo vārdu!</b></div>"); $qry=mysql_query("select * from tabula where saturs1 like '%$q%' or saturs2 like '%$q%' or saturs3 like '%$q%'"); //utt.. if(!mysq_num_rows($qry)) die("<div align='center'>Nekas nav atrasts, meigini savadak</div>"); while($r=mysql_fetch_array($qry)){ echo "Rezultats: $r[kaut_kas]<br />"; }?> Link to comment Share on other sites More sharing options...
Aleksejs Posted March 7, 2008 Report Share Posted March 7, 2008 (edited) Interesanta lieta un arī sarežģīta (ja sāk iedziļināties). Daži sagūglētie linki: Search engine Why Writing Your Own Search Engine is Hard The Anatomy of Search Engine Building a Vector Space Search Engine in Perl Create Your Own PHP MYSQL Search Engine Better Search Engine Design: Beyond Algorithms Search engine desing How Search Engines Make Money Universitātēs redzēju, ka izmanto šo: Michael W. Berry and Murray Browne, Understanding Search Engines: Mathematical Modeling and Text Retrieval, SIAM, 1999. P.S. Ja dzēšat šo topiku, varbūt pārnesiet linkus uz pamata topiku ;) Tomēr pusstunda mana laika ;) Edited March 7, 2008 by Aleksejs Link to comment Share on other sites More sharing options...
Mikijs Posted March 7, 2008 Report Share Posted March 7, 2008 alex ;) - JAUTAJUMS ka lai ar PHP mekle tekstu? ar str_replace() es tikai aizstaju bet man vajadzetu kka sadi $teksts = "man garso aboli"; $meklejamais_vards = "garso"; if(meklejsanas_funkcija($meklejamais_vards, $teksts)){ .... }else{ ... } Link to comment Share on other sites More sharing options...
bubu Posted March 7, 2008 Report Share Posted March 7, 2008 Kāpēc piedarazo svešus topikus. Savs ir jātaisa. Tava funkcija saucās strpos. Link to comment Share on other sites More sharing options...
Aleksejs Posted March 7, 2008 Report Share Posted March 7, 2008 stristr() Vai ja vajag sarežģītāku (regulāro izteiksmi): eregi() Link to comment Share on other sites More sharing options...
IM24LV Posted March 7, 2008 Author Report Share Posted March 7, 2008 opā, paldies Aleksej, paskatīšos :) Link to comment Share on other sites More sharing options...
IM24LV Posted March 28, 2008 Author Report Share Posted March 28, 2008 nā, likās ka būs vienkāršāk. ņēmu un lasīju vienu tutu, bet gandrīz neko nesapratu kā piedabūt rezultātus tā kā ir daudzās meklēšanas sistēmās, kaut vai kā te ir. http://www.roscripts.com/PHP_search_engine-119.html Tur iet runa par tādu "The Porter Stemming Algorithm" kurš pārveido ANGLISKOS vārdus to parastās formās bez galotnēm u.t.t., bet nedomāju ka tas kaut ko briesmīgi līdzētu + īsti neiebraucu kur to pašu stemmera algoritmu likt un kā viņš izmantojams(sākumā jāzin vai vispāŗ jēga ar to ir kko pasākt. Tad man prātā ienāca nākamā ideja, ka ar skriptu sākumā sadala pa vārdiem, un pēc tam sadala pa noteiktu simbolu skaitu un tad ar to meklē rezultātus un augstākās pozīcijās ievieto rezultātus ar vairāk sakritībām, bet domāju ka būs diezgan pagrūti izdomāt visu sistēmu lai tiešām strādātu. Kur paši letiņi ņem idejas lai piemēram ierakstot vārdu kaķids atrod to kaķis vai kautkā tā? vai ir tā kā es esmu iedomājies vai tomēr nav?(par to vārdu sadalīšanu par atsevišķiem apgabaliem) Link to comment Share on other sites More sharing options...
Aleksejs Posted March 28, 2008 Report Share Posted March 28, 2008 Nu angļu valodā viens no vienkāršākajiem ir soundex algoritms (Apskatiet arī See also daļu par metaphone un double metaphone), kas atrod "līdzīgus" vārdus... Domāju, ka var uztaisīt līdzīgu arī latviešu valodai. Pie kam ņemot vērā iespējamās kļūdas rakstot - respektīvi - d burta vietā kļūdaini ierakstītie burti ir serfcx - tāpat kāds no šiem burti var būt pirms vai pēc dotā burta., piemēram spiežu d, bet uzspiežas df - varētu arī šīs lietas ņemot vērā kaut ko uztaisīt. Vienīgais jautājums: cik sarežģīti vajag... Tāpat var mēģināt izmantot MII rezultātus latviešu valodas analīzē: http://ailab.mii.lu.lv/morfo/ Link to comment Share on other sites More sharing options...
IM24LV Posted March 28, 2008 Author Report Share Posted March 28, 2008 bet tas būtu baigi sarežģīti veidojot iespējamajām kļūdām savus replacus u.t.t. Vai tā ideja sadalīt vārdus pa 3 burtiem, piemēram vārdu Prezidents pre rez ezi zid ide den ent nts un tad datubāzē meklētu visus radītos vārdus un ja atrod kādu sakritību tad izvada, jo vairāk sakritību jo augstāk nu kautkā tā. bet te atkal variants ir vai tas kautkā baigi neietekmētu pašas meklēšanas ātrdarbību? :) Un vēl jautājums - vai nav kautkāda iespēja izmantot googles gudros meklētājus lai meklētu tieši manā datubāzē? :D zinu ka ir kaut kādi Google custom search, bet tie meklē viņu pašu cachos :( Link to comment Share on other sites More sharing options...
Kaklz Posted March 28, 2008 Report Share Posted March 28, 2008 Paskaties uz: http://framework.zend.com/manual/en/zend.search.lucene.html Zend_Search_Lucene is a general purpose text search engine written entirely in PHP 5. Since it stores its index on the filesystem and does not require a database server, it can add search capabilities to almost any PHP-driven website. Zend_Search_Lucene supports the following features: * Ranked searching - best results returned first * Many powerful query types: phrase queries, wildcard queries, proximity queries, range queries and more [6] * Search by specific field (e.g., title, author, contents) Link to comment Share on other sites More sharing options...
Paulinjsh Posted March 28, 2008 Report Share Posted March 28, 2008 vari papētīt un paspēlēties arī ar http://www.sphinxsearch.com/ Link to comment Share on other sites More sharing options...
v3rb0 Posted March 28, 2008 Report Share Posted March 28, 2008 Un vēl jautājums - vai nav kautkāda iespēja izmantot googles gudros meklētājus lai meklētu tieši manā datubāzē? http://www.google.com/enterprise/mini/ Link to comment Share on other sites More sharing options...
IM24LV Posted March 28, 2008 Author Report Share Posted March 28, 2008 OK, tnx, paspēlēšos ar tām bezmaksas jau gatavajām meklēšanas sistēmām, jācer ka kkas izdosies :D bet nu googles cena ir visnotaļ vilinoša :D bet nu noteikti atbilstoša kvalitātei. Link to comment Share on other sites More sharing options...
IM24LV Posted March 28, 2008 Author Report Share Posted March 28, 2008 Atvainojos par dubultpostu, bet bišķīt pārskatīju tos jūšu dotos, nu diezgan nesaprotami un lieli skripti tam ir, diez kāpēc tik milzīgi aizņem daudz viņi? ka tik nav kautkādas vārdnīcas :( Es vēl pameklēšos gūglītē, varbūt tomēr ir kāds normāls skripts vai tutoriālis kurā tas iekš php bez visādiem man nesaprotamiem failiem :( Link to comment Share on other sites More sharing options...
Recommended Posts