Frank Schönmann: (ZU DIESEM FORUM) (Archiv-Suche): Eingabesyntax für komplexe Suchanfragen / Tokenizer

Beitrag lesen

hi!

Ich habe mir dein Skript nicht näher angeschaut, sondern mal einen etwas anderen Ansatz versucht. Folgendes ist dabei rausgekommen:

=== cut ===
#!/usr/bin/perl

my (@must, @can, @not);

$text = 'hallo +"dies ist ein test" -selfhtml';

Alle Leerzeichen zwischen " und " umwandeln in %20, anschließend alle " entfernen

while ($text =~ /"(.+?) (.+?)"/)
{
  $text =~ s/"(.+?) (.+?)"/"$1%20$2"/;
}
$text =~ s/"//g;

Tokens in $text sind jetzt durch Leerzeichen getrennt

@text = split / /, $text;
&parser(@text);

Jedes Token wird überprüft und einem Array zugeordnet

sub parser
{
  for (@_)
  {
    if (s/^+//)
    {
      push @must, $_;
    } elsif (s/^-//) {
      push @not, $_;
    } else {
      push @can, $_;
    }
  }
}
=== cut ===

Sollte eigentlich klar sein: @must enthält Begriffe, die enthalten sein müssen, @can-Begriffe können vorkommen (erhöhen zb. die Bewertung), @not-Begriffe dürfen nicht vorkommen.

Nach "-Zeichen selbst kann man damit nicht mehr suchen, aber braucht man das wirklich? Die %20-Zeichen sollten später natürlich wieder in Leerzeichen umgewandelt werden.

bye, Frank!

0 62

(ZU DIESEM FORUM) (Archiv-Suche): "Wunschkonzert"

Michael Schröpl
  1. 0

    (ZU DIESEM FORUM) (Archiv-Suche): Umlaute und Sonderzeichen

    Michael Schröpl
  2. 0

    (ZU DIESEM FORUM) (Archiv-Suche):

    Michael Schröpl
    1. 0

      (ZU DIESEM FORUM) (Archiv-Suche): Eingabesyntax für komplexe Suchanfragen / Tokenizer

      Michael Schröpl
      1. 0
        Frank Schönmann
        1. 0
          Michael Schröpl
          1. 0
            Frank Schönmann
            1. 0
              Michael Schröpl
  3. 0
    Tom
    1. 0
      Michael Schröpl
      1. 0
        Tom
        1. 0
          Michael Schröpl
  4. 0

    (ZU DIESEM FORUM) (Archiv-Suche): Datenmodell und Operatoren

    Michael Schröpl
    1. 0
      Tom
      1. 0
        Michael Schröpl
        1. 0
          Frank Schönmann
          1. 0
            Michael Schröpl
          2. 0
            Stefan Muenz
          3. 0

            (Archiv-Suche): Stopwortliste für Archiv-Index

            Michael Schröpl
            1. 0
              Frank Schönmann
    2. 0

      (ZU DIESEM FORUM) (Archiv-Suche) Operatoren: "+" (MUST), "-" (NOT) und " " (CAN)?

      Michael Schröpl
      1. 0
        Stefan Muenz
        1. 0
          Frank Schönmann
          1. 0

            (ZU DIESEM FORUM) (Archiv-Suche) Limitierung und Sortierung von Treffern

            Michael Schröpl
          2. 0
            Stefan Muenz
            1. 0
              Frank Schönmann
    3. 0

      (ZU DIESEM FORUM) (Archiv-Suche): Operatoren MUST und NOT implementiert

      Michael Schröpl
  5. 0

    (ZU DIESEM FORUM) (Archiv-Suche): Case-Sensitivität

    Michael Schröpl
    1. 0
      Wilhelm
      1. 0
        Tom
        1. 0
          wilhelm
          1. 0

            (ZU DIESEM FORUM) (Archiv-Suche): Case-Sensitivität ist implementiert

            Michael Schröpl
            1. 0
              Swen
      2. 0
        Michael Schröpl
    2. 0
      Michael Schröpl
  6. 0

    (ZU DIESEM FORUM) (Archiv-Suche): Qualität

    nikita
    1. 0
      Michael Schröpl
  7. 0
    Swen
  8. 0
    Wasser
    1. 0
      Michael Schröpl
      1. 0
        Wasser
        1. 0

          (Archiv-Suche) Vorschlag

          Wasser
          1. 0
            Michael Schröpl
            1. 0
              Frank Schönmann
  9. 0
    Calocybe
    1. 0
      Michael Schröpl
      1. 0
        Stefan Muenz
      2. 0
        Calocybe
        1. 0
          Stefan Muenz
  10. 0
    Stefan Muenz
    1. 0
      Michael Schröpl
      1. 0
        Stefan Muenz
        1. 0
          Michael Schröpl
          1. 0
            Stefan Muenz
        2. 0
          Calocybe
          1. 0
            Michael Schröpl
  11. 0
    wilhelm
    1. 0
      Michael Schröpl
      1. 0
        Michael Schröpl
      2. 0
        wilhelm
        1. 0
          Michael Schröpl
  12. 0
    Swen