Avatar billede kodak Mester
11. november 2009 - 14:49 Der er 11 kommentarer og
1 løsning

Søge funktion

Jeg har en mappe fyldt med xml filer som den underståendene,
Jeg vil gerne have en søge fungsion der virker under search.php?search=SØGEORD

Når den harfundet et eller flere ord skal den lave en liste med brug af:
<news no="1">
<navn>OVERSKRIFT</navn>
<tekst>EN KORT TEKST</tekst>


'smu/ENFIL.xml'
<?xml version='1.0' encoding='UTF8'?>
<newst>
    <news no="1">
        <navn>OVERSKRIFT</navn>
        <pic2>BILLEDE1</pic2>
        <epic2>BILLEDE2</epic2>
        <tekst>EN KORT TEKST</tekst>
        <fulltekst>EN LANG TEKST</fulltekst>
        <readlink>LINK URL</readlink>
        <readtext>LINK TEKST</readtext>
    </news>
    <news no="2">
        <navn>OVERSKRIFT</navn>
        <pic2>BILLEDE1</pic2>
        <epic2>BILLEDE2</epic2>
        <tekst>EN KORT TEKST</tekst>
        <fulltekst>EN LANG TEKST</fulltekst>
        <readlink>LINK URL</readlink>
        <readtext>LINK TEKST</readtext>
    </news>
</newst>
Avatar billede j4k0b Nybegynder
11. november 2009 - 15:34 #1
Så bliver du jo nok nødt til at fortælle lidt mere. Hvad skal der eksempelvis søges blandt, hvor meget data søges der igennem og hvor ofte skal søgningen fortages?
Avatar billede kodak Mester
11. november 2009 - 15:53 #2
Søgningen skal fortages når der søges
Der søges i 17 filer, i mappen 'smu/' er alle xml filerne.
en a filerne er endeløs.
Der må søges blandt ord i
<navn>OVERSKRIFT</navn>
<tekst>EN KORT TEKST</tekst>
<fulltekst>EN LANG TEKST</fulltekst>
Avatar billede j4k0b Nybegynder
11. november 2009 - 16:02 #3
> Søgningen skal fortages når der søges
Det kunne jeg sådan set godt regne ud. Spørgsmålet lød på hvor ofte søgningen skal fortages, og det er en væsentlig variabel at tage med i regnestykket når man skal vurdere hvilken der er den bedste i dit tilfælde. Det samme gælder mængden af data, og når du siger at en af filerne er "endeløs" (hvad end du nu mener med det) så vil jeg sige at din søgning kommer til at blive langsom at udføre.

Du smider heller ikke et eksempel på en XML fil. Hvis dette er det eneste XML du har, så kan jeg sige at det er ugyldigt XML kode. Læs specifikationen på XML hvis du vil vide hvorfor:
<navn>OVERSKRIFT</navn>
<tekst>EN KORT TEKST</tekst>
<fulltekst>EN LANG TEKST</fulltekst>
Avatar billede kodak Mester
11. november 2009 - 16:21 #4
Den ene fil kan være endenøs det er en fil der kommer til at hede news (da den indeholder nyheder) og nyhederne altid skal være i arkiv.


En xml fil kan se så ledes ud:

<?xml version='1.0' encoding='UTF8'?>
<newst>
    <news no="1">
        <navn>Nyhed nr. 1</navn>
        <tekst>Dette er den korte test tekst af nyhed nummer 1, her kan det ses om den aksepterer æ eller ø og å.</tekst>
        <fulltekst>Dette er den lange test tekst af nyhed nummer 1, her kan det ses om den aksepterer æ eller ø og å.</fulltekst>
        <readlink>index1</readlink>
        <readtext>Læs mere 1</readtext>
    </news>
    <news no="2">
        <navn>Nyhed nr. 2</navn>
        <tekst>Dette er den korte test tekst af nyhed nummer 2, her kan det ses om den aksepterer æ eller ø og å.</tekst>
        <fulltekst>Dette er den lange test tekst af nyhed nummer 2, her kan det ses om den aksepterer æ eller ø og å.</fulltekst>
        <readlink>index2</readlink>
        <readtext>Læs mere 2</readtext>
    </news>
</newst>
Avatar billede j4k0b Nybegynder
11. november 2009 - 16:32 #5
Hvad mener du præcis med at filen kan være endeløs? Er det et stream? (DOM kan ikke arbejde med streams, men det kan SAX til gengæld)

:-)

Hvor store er filerne?

Hvor ofte vil der blive foretaget en søgning, sådan cirka? Grunden til at jeg spørger er fordi at en søgning der tager ét sekund kan være acceptabel hvis den kun udføres 100 gange om dagen. Men snakker vi 1000 gange er der ikke sikkert at det er acceptabelt.
Avatar billede kodak Mester
11. november 2009 - 17:16 #6
under 100 gange
Avatar billede kodak Mester
25. november 2009 - 13:12 #7
Hallo sker her noget?
Avatar billede j4k0b Nybegynder
25. november 2009 - 14:19 #8
Jo men jeg gider ikke lege gætteleg. Jeg gider heller ikke bruge tid på at lave noget der alligevel ikke vil fungere for dig, så besvar alle mine spørgsmål, og så kan vi komme videre :-)
Avatar billede kodak Mester
25. november 2009 - 15:11 #9
Jeg har en mappe fyldt med xml filer ("/nyheder") som ligner den underståendene,
Jeg vil gerne have en søge fungsion der virker under search.php?search=SØGEORD

Når den har fundet et eller flere ord skal den lave en liste med brug af:
<news no="1">
<navn>OVERSKRIFT</navn>
<tekst>EN KORT TEKST</tekst>

Så ledes kan en fil se ud:
"nyheder/news.xml

<?xml version='1.0' encoding='UTF8'?>
<newst>
    <news no="2">
        <navn>OVERSKRIFT</navn>
        <startdato>START DATO</startdato>
        <stopdato>SLUT DATO</stopdato>
        <pic>LILE BILLEDE</pic>
        <fpic>STORT BILLEDE</fpic>
        <tekst>KORT TEKST PÅ MAX 106 TEGN</tekst>
        <fulltekst>LANG TEKST</fulltekst>
        <readlink>LINK URL</readlink>
        <readtext>LINK TEKST</readtext>
    </news>
    <news no="1">
        <navn>Nyhed nr. 1</navn>
        <startdato>13.11.09</startdato>
        <stopdato>20.12.09</stopdato>
        <pic>temp01.png</pic>
        <fpic>temp01.png</fpic>
        <tekst>Dette er den korte test tekst af news.xml nummer 1, her kan det ses om den aksepterer æ eller ø og å.</tekst>
        <fulltekst>fra fil news.xml Dette er den lange test tekst af nyhed nummer 1, her kan det ses om den aksepterer æ eller ø og å.</fulltekst>
        <readlink>?news=1</readlink>
        <readtext>Læs mere</readtext>
    </news>
</newst>


Der er ca. 15 xml filer i mappen
Der vil blive foretaget under 80 søgninger om dagen.
I de fleste filer er der ca. 100 emner

Søger man eksempelvis:
search.php?search=experten
skal den tjekke de 15 filer efter ordet "experten" i følgendene grupper:

<navn>OVERSKRIFT</navn>
<tekst>KORT TEKST</tekst>
<fulltekst>LANG TEKST</fulltekst>

EKSEMPELVIS:

2 XML FILER HAR ORDET

<navn>Så køre det.</navn>
<tekst>Jeg surfet meget på Internettet.</tekst>
<fulltekst>jeg surfer meget på nettet her dag.</fulltekst>

"nyheder/news.xml" i en fil som denne er der ca. 50 emner

<navn>Så køre det.</navn>
<startdato>13.11.09</startdato>
<stopdato>20.12.09</stopdato>
<pic>temp01.png</pic>
<fpic>temp01.png</fpic>
<tekst>Jeg surfer meget på Internettet.</tekst>
<fulltekst>jeg surfer meget på nettet her dag og læser meget på experten.</fulltekst>
<readlink>?news=1</readlink>
<readtext>Læs mere</readtext>


"nyheder/arkiv.xml" i en fil som denne er det op til ca 500 emner

<navn>Vægt experten.</navn>
<startdato>16.12.09</startdato>
<stopdato>28.12.09</stopdato>
<pic>temp01.png</pic>
<fpic>temp01.png</fpic>
<tekst>Jeg er på kur og har tabt mig.</tekst>
<fulltekst>Jeg er på kur og går tit til vægt konsulenten for atfå et tjek.</fulltekst>
<readlink>?news=1</readlink>
<readtext>Læs mere</readtext>


Så skal søge siden visesig på følgendene måde:

Fandt følgendene resultat:

Så køre det. 13.11.09
Jeg surfer meget på Internettet.

Vægt experten. 16.12.09
Jeg er på kur og har tabt mig.


Hvis det hjælper så det tidligere script jeg brugertil at hente teksten ud med ser så ledes ud:


<?php
$rdr = new XMLReader();
$rdr->xmL(file_get_contents("nyheder/news.xml"));

$n = 0;
while($rdr->read()){
    switch ($rdr->nodeType) {
        case XMLReader::TEXT:
            $s = $rdr->value;
            break;
        case XMLReader::ELEMENT:
            if($rdr->localName == 'news') {
                $no = $rdr->getAttribute('no');
            }
            break;
        case XMLReader::END_ELEMENT:
            if($rdr->localName == 'tekst') {
                $tekst = $s;
            } else if($rdr->localName == 'navn') {
                $navn = $s;
            } else if($rdr->localName == 'readlink') {
                $readlink = $s;
            } else if($rdr->localName == 'readtext') {
                $readtext = $s;
            } else if($rdr->localName == 'news') {
                if ($n==2) continue;
                echo "<p class=\"left\"><img src=\"images/dot_g.gif\" width=\"5\" height=\"5\" alt=\"\" border=\"0\" align=\"middle\">  <u>" . $navn . "</u><br>" . $tekst . "<br><a href=\"news.php?read=" . $readlink . "\">" . $readtext . "</a></p>";
                $n++;
            }
            break;
    }
}?>



Siden vil blive besøgt ca 5 gange dagligt.

Håber det hjælper lidt
Avatar billede j4k0b Nybegynder
25. november 2009 - 15:44 #10
tak, det hjælper ;) kigger på det når jeg kommer hjem fra arbejde..
Avatar billede kodak Mester
05. december 2009 - 16:31 #11
Har du fundet en løsning?
Avatar billede kodak Mester
20. juni 2010 - 14:00 #12
Det tar jeg som et nej.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester